JSF 2 Mojarra - Обязательный атрибут не учитывается после f: ajax render - PullRequest
0 голосов
/ 04 мая 2011

Рассмотрим этот простой пример.Если у меня есть форма, подобная этой, я, очевидно, получаю ошибку проверки при отправке без значения в inputText:

<h:form id="testForm" prependId="false">

    <h:selectOneMenu 
        id="testSelectOneMenu" 
        value="#{backButtonTestBean.selection}">
        <f:selectItem itemValue="mickey" itemLabel="Mickey" />    
        <f:selectItem itemValue="mouse" itemLabel="Mouse" />
        <f:ajax execute="@this" render="panel" />
    </h:selectOneMenu>                 

       <h:panelGroup layout="block" id="panel">
           <h:panelGroup layout="block">
               <h:inputText id="requiredField" required="true" />
           </h:panelGroup>    
       </h:panelGroup>

       <h:commandButton value="submit" action="#{backButtonTestBean.submit}" />

</h:form>

Но когда я перерисовываю panelGroup w / f: ajax, обязательный атрибут непочитай и я могу отправить с пустым значением:

<h:form id="testForm" prependId="false">

    <h:selectOneMenu 
        id="testSelectOneMenu" 
        value="#{backButtonTestBean.selection}">
        <f:selectItem itemValue="mickey" itemLabel="Mickey" />    
        <f:selectItem itemValue="mouse" itemLabel="Mouse" />
        <f:ajax execute="@this" render="panel" />
    </h:selectOneMenu>                 

       <h:panelGroup layout="block" id="panel">
           <h:panelGroup layout="block" rendered="#{backButtonTestBean.selection == 'mouse'}">
               <h:inputText id="requiredField" required="true" />
           </h:panelGroup>    
       </h:panelGroup>

       <h:commandButton value="submit" action="#{backButtonTestBean.submit}" />

</h:form>

Я тестирую в мохарре 2.1.1.Любой совет приветствуется.

1 Ответ

0 голосов
/ 04 мая 2011

обновление: Я понял это. BackButtonTestBean находился в области запроса, поэтому значение testSelectOneMenu не было «мышью», когда я отправлял форму. Следовательно, он не был представлен и, следовательно, валидаторы были недействительными. Изменено на @ViewScoped и работает как положено.

...