调用ValueChangeListener时发送f:param

时间:2011-11-22 07:19:45

标签: jsf parameters jsf-1.2 valuechangelistener

每次调用ValueChangeListener时,我都想发送一个请求参数。我已经按照以下方式实现了它,但遗憾的是它不起作用。

这是代码,所以你可以得到这个想法。

<h:selectOneMenu value="#{MyBean.code}" 
   valueChangeListener="#{MyBean.codeChanged}" onchange="this.form.submit()">
   <f:selectItems value="#{MyBean.codeItems}" />
   <f:param name="validation" value="true" />
</h:selectOneMenu>

1 个答案:

答案 0 :(得分:4)

此构造中不支持<f:param>。对于JSF 1.2,它仅在<h:commandLink><h:outputLink><h:outputFormat>中受支持。最好的选择是<f:attribute>

<h:selectOneMenu value="#{MyBean.code}" 
    valueChangeListener="#{MyBean.codeChanged}" onchange="this.form.submit()">
    <f:selectItems value="#{MyBean.codeItems}" />
    <f:attribute name="validation" value="true" />
</h:selectOneMenu>

public void codeChanged(ValueChangeEvent event) {
    UIInput menu = (UIInput) event.getComponent();
    boolean validation = Boolean.valueOf(component.getAttributes().get("validation"));
    // ...
}