Проблема JSF 2.0 (Face-Config)
У нас есть faces-config.xml
в JSF 1.0, где мы входим о управляемых компонентах, зависимостях, навигации и т. д.
Я разрабатывал пример проекта с использованием JSF 2.0. Но, поскольку я не знаю аннотации, мне нужно включить face-config.xml
внешне. Пожалуйста, предоставьте решение для этого, так как в JSF 2.0 нам не нужно его включать. Что является причиной этого? Как мы устанавливаем бин как управляемый бин. Что такое аннотация? Как это используется?
3 ответа
(...) в JSF 2.0 нам не нужно его включать. Что является причиной этого?
В трех словах: простота разработки. Код для написания меньше - шаблонный код удален, значения по умолчанию используются, когда это возможно, и аннотации используются, чтобы уменьшить потребность в дескрипторах развертывания.
Как мы устанавливаем бин как управляемый бин. Что такое аннотация? Как это используется?
Управляемые бобы идентифицируются с помощью @ManagedBean
аннотаций. Область действия компонента также указывается с помощью аннотаций (@RequestScoped
, @SessionScoped
, @ApplicationScoped
, так далее).
Итак, следующее в JSF 1.0:
<managed-bean>
<managed-bean-name>foo</managed-bean-name>
<managed-bean-class>com.foo.Foo</managed-bean-class>
<managed-bean-scope>session</managed-bean>
</managed-bean>
Может быть переписан как таковой в JSF 2.0:
@ManagedBean
@SessionScoped
public class Foo {
//...
}
И упомянуто так на странице Facelet:
<h:inputText label="eMailID" id="emailId"
value="#{foo.email}" size="20" required="true"/>
(По умолчанию имя управляемого компонента будет именем аннотированного класса с первой буквой класса в нижнем регистре.)
Смотрите также
Смотрите учебник по аннотациям.
Для JSF вы можете сделать что-то вроде этого (используя@ManagedBean
аннотация):
@ManagedBean
public class YourManagedBean {
...
}
Вы можете использовать face-config.xml в JSF2 точно так же, как вы использовали в JSF 1.x. На самом деле, хотя аннотации часто можно использовать вместо файла face-config.xml, не каждая функция JSF доступна строго через аннотации, поэтому иногда вам нужен файл face-config даже в JSF2.
Однако есть одно небольшое отличие: вы должны обновить ссылку на версию XML-схемы в вашем файле face-config, чтобы отразить изменения схемы, которые вступили в силу с JSF2.