日々精進

新しく学んだことを書き留めていきます

JSFでajaxでリクエストを送信し、バリデーションエラーになった時に「WARNUNG: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.」エラーが出てバリデーションエラーメッセージが画面に表示されない

原因はバリデーションエラーメッセージを表示するh:messageタグがrenderで指定されていないこと。 以下のようにf:ajaxタグのrenderでh:messageのidを指定すると表示された。

    <h:inputText id="text3" value="#{bean.text3}">
        <f:validateRegex pattern="[A-Z][a-zA-Z]*" />
        <f:ajax event="keyup" render="text3message" />
    </h:inputText>
    <h:message id="text3message" for="text3" />

参考: