选择noSelectionLabel时如何调用动作?

时间:2011-09-30 20:03:19

标签: jsf richfaces seam selectonemenu

我上面有这个代码,当我选择他的一些项目时,它可以很好地工作... a4j:支持工作正常并正确地重新渲染我的另一个字段... 问题是如果我选择一个项目,然后我回到“noSelectionLabel”...... 当我出于某种原因这样做时,我的a4j:支持不工作,我没有进入我的方法“setarFormulario”,我不会重新渲染我的另一个领域......

<s:decorate template="layout/form.xhtml">
            <ui:define name="label">Evento:</ui:define>
            <h:selectOneMenu value="#{home.instance.evento}" required="true">
                <s:selectItems value="#{eventoService.obterTodos()}" var="evento" label="#{messages[evento.nome]}"  noSelectionLabel="#{messages['br.com.message.NoSelection']}" />
                <s:convertEntity  />
                <a4j:support event="onchange"  action="#{home.setarFormulario}" reRender="camposFormulario" ajaxSingle="true"  />
            </h:selectOneMenu>
        </s:decorate>

即使我选择noSelectionLabel,我如何进入我的方法?然后我的home.instance.evento必须为null ..或类似的东西......

2 个答案:

答案 0 :(得分:2)

您需要h:selectOneMenu字段,然后选择noSelectionLabel值会导致验证错误,如果您遇到验证错误,则永远不会调用action="#{home.setarFormulario}"

作为解决方法,您可以为hideNoSelectionLabel设置 true 属性s:selectItems,然后在选择值时隐藏noSelectionLabel

答案 1 :(得分:-1)

<h:message for="id of the selectonemenu component " ></h:message>

required =true代码

中删除selectonemenu