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

2024-02-17

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

我正在处理一个遗留项目,其中包含数百个定义的beanfaces-config.xml。我想保留 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. @ManagedBean is of javax.annotation包而不是javax.faces.bean.

  3. Bean 类未编译/构建到 WAR 中/WEB-INF/classes.

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

  5. EL 中使用了错误的托管 bean 名称,根据 Javabean 规范,它应该是第一个字符小写的 bean 类名称。所以在你的具体例子中,#{fooBar}应该可以,但是#{FooBar} won't.

  6. 网络应用程序是actually使用 JSF 1.x 库(您可以在服务器启动日志中读取 JSF 版本)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将注释与 faces-config.xml 混合 的相关文章

随机推荐