繁体   English   中英

如何将注释与faces-config.xml混合使用

[英]How to mix annotations with faces-config.xml

使用JBoss 6.0.0.Final,Richfaces 3.3.3.Final,MyFaces 2.0.6,facelets 1.1.15.B1(RF 3的限制)。

我在遗留项目中,其中包含faces-config.xml定义的数百个bean。 我想保留faces-config.xml中定义的那些,但是对新bean使用注释。 但是,当我尝试这个时,我没有成功。 由注释定义的bean即

@ManagedBean
@ViewScoped
public class Foobar implements Serializable {
    // ...
}

从我的JSF页面无法访问该bean。 我相信我已经通过使用正确的标头在faces-config.xml中指定了2.0版本。

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

我还需要在faces-config.xml做些什么来允许使用注释吗?

在以下情况下,带注释的bean将失败:

  1. /WEB-INF/faces-config.xml未声明符合JSF 2.0。

  2. @ManagedBeanjavax.annotation包而不是javax.faces.bean

  3. Bean类未编译/内置到WAR的/WEB-INF/classes

  4. Bean打包在缺少/META-INF/faces-config.xml的JAR文件中。

  5. 在EL中使用了错误的托管bean名称,它应该是根据Javabeans规范的第一个字符较低的bean类名称。 所以在你的特定例子中, #{fooBar}应该可以工作,但#{FooBar}不会。

  6. Webapp 实际上使用的是JSF 1.x库(您可以在服务器启动日志中读取JSF版本)。

暂无
暂无

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

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