抱歉标题不好,请随时编辑。
所以我有这段代码:
<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?