2012-05-10 64 views
0

我遇到了bean中註釋的奇怪問題。Managed Bean Annotation在JSF 2.0中不起作用

的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文件的內容:

<?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(進口LIB)
  • JBoss Server 4.2
+0

對於JSF 2.0,您確實應該使用JBoss AS7,因爲它是JEE6認證的。 – CoolBeans

回答

0

我大膽猜測是,JSF 1.2在默認情況下與JBoss 4.2捆綁使用(JBoss的可能不關心JSF版本)。因此註釋被忽略,使用faces-config.xml文件。

嘗試使用配置建議here(多數民衆贊成谷歌緩存頁)。