0

我们faces-config.xml在 JSF 1.0 中有关于托管 bean、依赖项和导航等的条目。

我正在使用 JSF 2.0 开发一个示例项目。但是,由于我不知道注释,我需要在face-config.xml外部包含。请提供解决方案,因为在 JSF 2.0 中我们不需要包含它。背后的原因是什么?我们如何将 bean 设置为托管 bean。什么是注解?它是如何使用的?

4

3 回答 3

2

(...) 在 JSF 2.0 中我们不需要包含它。背后的原因是什么?

三个字:易于开发。需要编写的代码更少——样板代码被删除,尽可能使用默认值,注释用于减少对部署描述符的需求。

我们如何将 bean 设置为托管 bean。什么是注解?它是如何使用的?

托管 bean 使用@ManagedBean注释来标识。bean 的范围也使用注解(@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"/>

(默认情况下,托管 bean 的名称将是注释类的名称,类的第一个字母小写。)

也可以看看

于 2010-06-16T08:44:56.717 回答
1

请参阅注释教程

对于 JSF,您可以执行以下操作(使用@ManagedBean注释):

@ManagedBean
public class YourManagedBean {
    ...
}
于 2010-06-16T07:10:31.367 回答
0

您可以在 JSF2 中使用 faces-config.xml,与在 JSF 1.x 中使用的方式完全相同。事实上,虽然通常可以使用注解来代替 faces-config.xml 文件,但并不是每个 JSF 特性都可以通过注解严格使用,因此有时即使在 JSF2 中您也需要一个 faces-config 文件。

但是,有一个小区别,那就是您应该更新 faces-config 文件中的 xml 模式版本引用,以反映对 JSF2 生效的模式更改。

于 2010-06-16T17:18:29.150 回答