我上面有这个代码,当我选择他的一些项目时,它可以很好地工作... 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 ..或类似的东西......
答案 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