2

JSF2 ajax と Bean Validation を使用して単純な登録フォームを作成したいと考えています。これによりui:repeat value="#{facesContext.messageList}" var="m"、検証が失敗したときにすべてのエラー メッセージをカスタム形式でエリアに表示できます。私のコードは Mojarra でうまく動作しますが、Myfaces2.1 に切り替えると、メッセージが表示されui:repeatませ ん。それはまだ動作しますが、それは私が望むものではありません。 しかし、今日、奇妙な回避策を見つけました:の親コンポーネントの1 つに属性を追加します。errorDisplay コンポーネントが毎回再レンダリングされるため、 これが重要な理由がわかりません。このテストは何かを変えますか?olfacesContext.messageListh:messages
rendered="#{not empty facesContext.messageList}"ui:repeat
rendered="..."#{not empty facesContext.messageList}

<h:form>
Name:<h:inputText value="#{hello.name}" id="name"/>
<br/>
Age :<h:inputText value="#{hello.age}" id="age" converterMessage="'Age'必须是一个数字"/>

<h:commandLink value="register" type="submit">
    <f:ajax execute="@form" render="errorDisplay"/>
</h:commandLink>

<h:panelGroup> <!--rendered="#{not empty facesContext.messageList}"-->
    <h:panelGroup  id="errorDisplay"><!--rendered="#{not empty facesContext.messageList}"-->
        <span>发生以下错误:&lt;/span>
        <ol style="color:red;">
            <ui:repeat value="#{facesContext.messageList}" var="m">
                <li>${m.detail}</li>
            </ui:repeat>
        </ol>
    </h:panelGroup>

</h:panelGroup>
</h:form>
4

0 に答える 0