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.xhtmltest_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