Отправлять f:param при вызове 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>

person Community    schedule 22.11.2011    source источник
comment
Параметр является значением selectItems?   -  person Michel Foucault    schedule 22.11.2011
comment
Нет, параметром является флаг validation.   -  person    schedule 22.11.2011
comment
вы можете попробовать добавить ‹f:param name=validation value=true /› как дочерний элемент ‹f:selectItems ›   -  person Michel Foucault    schedule 22.11.2011


Ответы (1)


<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"));
    // ...
}
person BalusC    schedule 22.11.2011
comment
Спасибо. У вас есть ресурс, где я могу узнать, какой параметр где разрешен? - person ; 22.11.2011
comment
Документация библиотеки тегов JSF: download.oracle.com/javaee/5 /javaserverfaces/1.2/docs/tlddocs Кроме того, эта статья может оказаться полезной для получения новых общих сведений: balusc.blogspot.com/2006/06/communication-in-jsf.html - person BalusC; 22.11.2011