Как вызвать действие при выборе noSelectionLabel? - PullRequest
0 голосов
/ 01 октября 2011

У меня есть код выше, который отлично работает, когда я выбираю некоторые элементы на нем ... Поддержка a4j: отлично работает и корректно переопределяет другое поле ... Проблема в том, что если я выберу один элемент, а затем явернуться к "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 должен быть нулевым ... или что-то вроде этого ...

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Поле Yor h:selectOneMenu необходимо, тогда выбор значения noSelectionLabel вызовет ошибку проверки, и если у вас будет ошибка проверки, action="#{home.setarFormulario}" никогда не будет вызван.

В качестве обходного пути вы можете установить true атрибут hideNoSelectionLabel для вашего s:selectItems, тогда noSelectionLabel будет скрыт при выборе значения

0 голосов
/ 01 февраля 2013
<h:message for="id of the selectonemenu component " ></h:message>

или

удалить required =true из тега selectonemenu

...