簡體   English   中英

JSF 2.0注釋不起作用

[英]JSF 2.0 Annotation does not work

;嗨,

我正在使用JSF 2.0 Mojarra ver。 2.0.2-SNAPSHOT(使用Maven獲取)。

我正在嘗試使用Annotation來設置JSF bean,如下所示:

@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 bean。 為了說明這一點,我有以下頁面

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

名稱“ test”應打印在頁面上。 但是,當我在Tomcat 6.20和JDK 1.6上運行時,該名稱未顯示。

如果我使用faces-config.xml來配置HelloBean,則該名稱將正確顯示在頁面上。

我錯過了什么?

如果您有任何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是不必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM