我尝试了以下内容:
像我使用的小脸一样:
...
<h:button value="x" outcome="nextpage">
<f:param name="#{myBean.PARAM_NAME}" value="someValue"/>
</h:button>
...
像我用作上一个facelet的控制器的托管bean之类的东西:
@Named(value="myBean")
@ViewScoped
public MyBean implements Serializable
{
private static final String PARAM_NAME = "paramName";
public String getPARAM_NAME()
{ return PARAM_NAME };
@PostConstruct
public void init()
{
String passedParamValue = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(
PARAM_NAME );
...
}
}
这样做的好处是:我在两个地方使用param名称。在facelet和托管bean中也是如此。这两个地方是分开的。我应该使用常量来减少错误输入的可能性。但似乎name
的{{1}}不会评估EL表达式。 (f:param
始终为passedParamValue
)。但是,如果我直接将文本'paramName'连接到null
属性,它可以正常工作。我是对的还是有办法在这里使用常数?