2010-09-11 79 views
1

;嗨,JSF 2.0註釋不起作用

我正在使用JSF 2.0 Mojarra版本。 2.0.2-SNAPSHOT(使用maven獲取)。

我試圖使用註解來設置JSF豆,因爲這樣的:

@ManagedBean 
@RequestScoped 
public class HelloBean { 
    @ManagedProperty(value="test") 
    private String name; 

    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
} 

註釋不工作,這意味着爲helloBean類未配置爲JSF豆。爲了說明這一點,我有以下頁面

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"> 
<head> 
    <title>Hello World</title> 

</head> 
<body> 
<f:view> 
    Hello #{helloBean.name} 
</f:view> 
</body> 

</html> 

名稱「測試」應打印在頁面上。但是當我在Tomcat 6.20和JDK 1.6上運行時,名稱不顯示。

如果我使用faces-config.xml中配置爲helloBean,正確的名稱出現在網頁上。

有什麼我錯過了?

回答

1

如果您有任何faces-config.xml文件,它需要被聲明爲JSF 2.0,而不是作爲JSF 1.2或更低。

<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"> 

順便說一句,在Facelets中不需要f:view

+0

謝謝Balus。在修改faces-config.xml聲明之後,註釋工作正常。 – 2010-09-11 21:29:17

+0

不客氣。 – BalusC 2010-09-11 21:56:44