JSF 2.0问题(faces-config)

时间:2010-06-16 05:45:07

标签: java jsf annotations jsf-2 faces-config

我们在JSF 1.0中有faces-config.xml,我们在其中输入了托管bean,依赖关系&导航等。

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

3 个答案:

答案 0 :(得分:2)

  

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

用三个词来说:易于发展。编写的代码更少 - 删除样板代码,尽可能使用默认值,并使用注释来减少对部署描述符的需求。

  

我们如何将bean设置为managed-bean。什么是注释?它是如何使用的?

使用@ManagedBean注释标识托管bean。 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的名称将是带注释的类的名称,该类的第一个字母为小写。)

另见

答案 1 :(得分:1)

请参阅annotations tutorial

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

@ManagedBean
public class YourManagedBean {
    ...
}

答案 2 :(得分:0)

您可以在JSF2中使用faces-config.xml,就像在JSF 1.x中一样。实际上,尽管通常可以使用注释来代替faces-config.xml文件,但并不是每个JSF功能都可以通过注释严格使用,因此有时甚至在JSF2中也需要faces-config文件。

然而,有一个小的区别,那就是你应该更新faces-config文件中的xml架构版本引用,以反映JSF2生效的架构更改。