gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:27:43 24 4
gpt4 key购买 nike

使用 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com