импортирование sessionbean из javax.enterprise.context NOT javax.faces.bean [duplicate]

Оба правильные, но они интерпретируются как даты с двумя разными часовыми поясами. Итак, вы сравнили яблоки и апельсины:

// local dates
new Date("Jul 8, 2005").toISOString()            // "2005-07-08T07:00:00.000Z"
new Date("2005-07-08T00:00-07:00").toISOString() // "2005-07-08T07:00:00.000Z"
// UTC dates
new Date("Jul 8, 2005 UTC").toISOString()        // "2005-07-08T00:00:00.000Z"
new Date("2005-07-08").toISOString()             // "2005-07-08T00:00:00.000Z"

Я удалил вызов Date.parse(), так как он автоматически используется для строкового аргумента. Я также сравнивал даты с использованием формата ISO8601 , чтобы вы могли визуально сравнивать даты между вашими местными датами и датами UTC. Время разговора составляет 7 часов, что является разницей в часовом поясе и почему ваши тесты показывают две разные даты.

Другим способом создания этих же локальных / UTC-дат будет:

new Date(2005, 7-1, 8)           // "2005-07-08T07:00:00.000Z"
new Date(Date.UTC(2005, 7-1, 8)) // "2005-07-08T00:00:00.000Z"

Но я по-прежнему настоятельно рекомендую Moment.js , который как простой, но мощный :

// parse string
moment("2005-07-08").format()       // "2005-07-08T00:00:00+02:00"
moment.utc("2005-07-08").format()   // "2005-07-08T00:00:00Z"
// year, month, day, etc.
moment([2005, 7-1, 8]).format()     // "2005-07-08T00:00:00+02:00"
moment.utc([2005, 7-1, 8]).format() // "2005-07-08T00:00:00Z"

36
задан BalusC 25 February 2013 в 14:39
поделиться

1 ответ

  1. javax.enterprise.context.SessionScoped ( JSR 346 ), а все остальные аннотации в пакете javax.enterprise.context.* поддерживают контекст CDI . CDI предоставляет альтернативный, универсальный и более мощный механизм для инъекций зависимостей, управления компонентами и общим ресурсом в пространстве Java EE. Это альтернатива управляемым bean-компонентам JSF, и она настроена на то, чтобы даже заменить механизм управления компонентом JSF в будущей версии JSF . В настоящее время JSF и CDI аннотированные бобы взаимозаменяемы в любом данном веб-приложении Java EE (с учетом нескольких незначительных ограничений). CDI-аннотированные бобы, однако, простираются далеко за пределы области веб-уровня, поэтому спецификация Java EE развивается, чтобы сделать CDI стандартным компонентом и механизмом DI. Хотя CDI может быть очевидным выбором для всей разработки Java EE, управляемые bean-компоненты JSF переносимы в контейнерах сервлетов (Tomcat) и серверах приложений (Glassfish, JBoss и т. Д.). Компоненты CDI могут работать только с полными серверами приложений. Однако с помощью некоторые работы Tomcat 7 могут быть подключены для поддержки CDI. В частности, javax.enterprise.context.SessionScoped представляет собой параллельную реализацию Сессии сеанса JSF в CDI.
  2. javax.faces.bean.SessionScoped ( JSR 314 ), а все остальные аннотации в пакете javax.faces.bean.* поддерживают JSF-специфический механизм вливания и механизм управления бобами. Бобы, аннотированные аннотациями JSF, однако полезны только в веб-уровне. Все области, доступные с аннотациями JSF, были реплицированы в спецификации CDI.
  3. javax.annotation.ManagedBean ( JSR 316 ) и другие связанные с DI аннотации в javax.annotation.* являются попыткой обобщить аннотации на основе JSF для других применений в спецификации Java EE и действительно не должны использоваться конечным разработчиком.

Почему они существуют? Ну, ИМО, переход от фасоли JSF к компонентам CDI - это естественная эволюция технологии. Бобы JSF отлично справились, но Spring, Guice и Seam сделали очевидным, что технологии недостаточно. Необходимо также устранить разрыв между веб-компонентами и EJB, и ответ на эту потребность - это CDI.

См. также следующие связанные вопросы:

43
ответ дан Community 19 August 2018 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: