タイトル悪くてすみません、編集よろしくお願いします。
だから私はこのコードを持っています:
<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を設定するはずですか?