0

我有上面的这段代码,当我选择他身上的一些项目时,它可以完美地工作...... a4j:support 工作正常并正确地重新渲染我的另一个字段......问题是如果我选择一个项目,然后我回到“ noSelectionLabel”...当我出于某种原因执行此操作时,我的 a4j:support 不起作用,我没有进入我的方法“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 必须为空..或类似的东西......

4

2 回答 2

2

Yor 字段h:selectOneMenu是必需的,然后选择noSelectionLabelvalue 将导致验证错误,如果您有验证错误,则action="#{home.setarFormulario}"永远不会调用。

作为一种解决方法,您可以将属性设置为true ,然后在选择值时隐藏 noSelectionLabelhideNoSelectionLabels:selectItems

于 2011-10-01T18:21:05.687 回答
-1
<h:message for="id of the selectonemenu component " ></h:message>

或者

required =trueselectonemenu标签中删除

于 2013-02-01T05:08:08.873 回答