【问题标题】:Managed Bean Annotation doesn't work in JSF 2.0托管 Bean 注释在 JSF 2.0 中不起作用
【发布时间】:2012-05-10 15:11:42
【问题描述】:

我在 bean 中遇到了一个奇怪的注释问题。

index.xhtml 内容:

<h:outputText value="#{ejb.helloWorld}" />

Ejb.java 内容:

package bean;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

    @ManagedBean(name="ejb")
    @SessionScoped
    public class Ejb implements Serializable
    {
        public String getHelloWorld()
        {
            return "Hello World";
        }
    }

从我们上面看到的,我应该能够调用 bean 方法...但我不能,它会工作只有如果我在 faces-config.xml 文件中管理 bean 的内容:

<?xml version="1.0" encoding="UTF-8"?>
<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">

          <managed-bean>
              <managed-bean-name>ejb</managed-bean-name>
              <managed-bean-class>bean.Ejb</managed-bean-class>
              <managed-bean-scope>session</managed-bean-scope>
          </managed-bean>
</faces-config>

问题

  1. 为什么我会遇到这种情况?
  2. 如何解决此问题?

我正在使用:

  • JSF 2.0(导入到库中)
  • JBoss Server 4.2

【问题讨论】:

  • 对于 JSF 2.0,你真的应该使用 JBoss AS7,因为它是 JEE6 认证的。

标签: jsf-2 jboss managed-bean


【解决方案1】:

我的猜测是默认使用 JBoss 4.2 捆绑的 JSF 1.2(JBoss 可能不关心 JSF 版本)。结果注释被忽略,使用 faces-config.xml 文件。

尝试使用建议的配置here(那是谷歌缓存页面)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2012-02-22
    • 2016-11-12
    • 2016-10-24
    • 2012-01-27
    • 2011-12-05
    相关资源
    最近更新 更多