1

抱歉标题不好,请随时编辑。

所以我有这段代码:

<h:outputLink value="goodbye.xhtml">
    Go to goodbye!
    <f:param name="msg" value="test_one" />
</h:outputLink>

所以当点击时,我会在goodbye.xhtml结束,它的代码如下:

<f:view>
    <f:metadata>
        <f:viewParam name="msg" value="#{blahBlah.parameter}"/>
    </f:metadata>
    <h:body>
        #{blahBlah.parameter}
    </h:body>
</f:view>

所以当我有 BlahBlah.java 如下:

@ManagedBean
@SessionScoped
public class BlahBlah {
    private String parameter;
    public String getParameter() {
        return parameter;
    }
    public void setParameter(String parameter) {
        if (parameter.equals("test_one")) {
            this.parameter = "test_one_modified";
            return;
        }
        this.parameter = parameter;
    }
}

我会在 goodbye.xhtml 上看到test_one_modified很好。

但是当我如下修改 BlahBlah.java 时:

@ManagedBean
@SessionScoped
public class BlahBlah {
    private String parameter;
    public String getParameter() {
        if (parameter.equals("test_one")) {
            this.parameter = "test_one_modified";
        }
        return parameter;
    }
    public void setParameter(String parameter) {
        this.parameter = parameter;
    }
}

我期望再次看到test_one_modified但我会得到一个不错的Null Pointer Exception

是不是

<f:viewParam name="msg" value="#{blahBlah.parameter}"/>

应该设置BlahBlah.parameter?

4

0 回答 0