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

标签 jsf jsf-2 richfaces

使用 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 将失败:

  • /WEB-INF/faces-config.xml未声明符合 JSF 2.0。
  • @ManagedBeanjavax.annotation包而不是 javax.faces.bean .
  • Bean 类未编译/构建到 WAR 中 /WEB-INF/classes .
  • Bean 被打包在一个缺少的 JAR 文件中 /META-INF/faces-config.xml .
  • EL 中使用了错误的托管 bean 名称,根据 Javabeans 规范,它应该是第一个字符小写的 bean 类名称。因此,在您的特定示例中,#{fooBar}应该可以工作,但是 #{FooBar}惯于。
  • Webapp 实际上使用的是 JSF 1.x 库(您可以在服务器启动日志中阅读 JSF 版本)。
  • 关于jsf - 如何将注释与 faces-config.xml 混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7519151/

    相关文章:

    jsf-2 - ViewMapListener JSF 未被调用

    richfaces - JSF1.2 - richFaces progressBar - 简单的演示不工作

    css - 丰富的面孔 : Is it possible to set the look of output text like input type password?

    jsf - Primefaces 的 commandLink 仅适用于数据表的第一页

    java - 如何防止抽象方法被调用?

    css - 如何选择 <p :dataTable> by CSS?

    java - primefaces 时间表 : edit event details on move/resize event listeners

    java - <rich :calendar> doesn't accept java. util.Calendar

    jsf - 如何通过资源包国际化处理粗体、斜体、图像等格式

    jsf - 验证失败时 PF 自动完成显示错误的标签