ViewParam和会话作用域bean



我定义了viewParam来处理GET请求,但是会话bean是null

/treeTable2.xhtml @28,119 value="#{conformanceProfileController.dataValueAssertionController.library_line}": Target Unreachable, identifier 'conformanceProfileController' resolved to null

GET请求:

treeTable2.jsf?category=Message
XHTML代码

<f:metadata>
  <f:viewParam name="category" value="#{conformanceProfileController.category}" />
</f:metadata>

Bean

@ManagedBean
@SessionScoped
public class ConformanceProfileController implements Serializable {
    private String category;
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
}

我的开发服务器是Tomcat 7.0,我使用Mojarra 2.1.0

EDIT:我创建了一个带有新页面和新bean的简化版本。文章中的代码与我的机器上的代码相同。

XHTML代码:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    >
<h:head>
</h:head>
<f:metadata>
    <f:viewParam name="category" value="#{myBean.category}" />
</f:metadata>
<h:body>
</h:body>
</html>

MyBean:

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class MyBean implements Serializable {
    private String category;
    public MyBean() {
        System.out.println("Creation");
    }
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
}

GET请求: treeTable3.jsf?category=Message

错误消息: /treeTable3.xhtml @8,60 value="#{myBean.category}": Target Unreachable, identifier 'myBean' resolved to null

Mojarra 2.1.0不能在Tomcat/Jetty中工作,因为注释扫描中的一个错误。至少升级到2.1.1或当前的2.1.3。

这与视图参数或会话作用域bean无关。它只会失败,在所有情况下,你期望一个@ManagedBean

尝试一下@Named注释:http://download.oracle.com/javaee/6/tutorial/doc/gjbak.html

相关内容

  • 没有找到相关文章

最新更新