繁体   English   中英

JSF 2.0问题(faces-config)

[英]JSF 2.0 Problem (faces-config)

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

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

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

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

我们如何将一个bean设置为managed-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的名称将是带注释的类的名称,该类的首字母小写。)

也可以看看

请参阅注释教程

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

@ManagedBean
public class YourManagedBean {
    ...
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM