2017-01-29 15 views
0

テンプレートを使用しているときにフォームに検証エラーメッセージが表示されないという問題が発生しました。テンプレートのコンテンツ部分にJSF検証メッセージが表示されない

私は次のページに転送されていないことがわかりますが、エラーメッセージが表示されません。

レイアウトテンプレートパーツを定義せずに同じコードを試すと、メッセージが表示されます。

これは私のフォームコードです:誰でも私は見ていないだろう理由を持っ

 <!-- Content --> 
     <ui:define name="content">    
      <h:form> 
       <h:panelGrid columns="2"> 
        <h:outputLabel for="mname">Username&nbsp;</h:outputLabel> 
        <h:inputText required="true" requiredMessage="Username is required."> 

        </h:inputText>         
        <h:commandButton value="Submit"></h:commandButton> 
       </h:panelGrid> 
      </h:form> 
     </ui:define> 

<h:form> 
     <h:panelGrid columns="2"> 
      <h:outputLabel for="mname">Username&nbsp;</h:outputLabel> 
      <h:inputText required="true" requiredMessage="Username is required."> 

      </h:inputText>         
      <h:commandButton value="Submit"></h:commandButton> 
     </h:panelGrid> 
</h:form> 

そして、私は定義コンテンツだとき、これは私のコードである部分レイアウトページを定義しているときにエラーメッセージが表示される

これは私のlayout.xhtmlコンテンツ部分です。

<div id="content"> 
     <ui:insert name="content"> 
      <ui:include src="/template/content.xhtml" /> 
     </ui:insert> 
</div> 
+0

とどこでタグを定義していますか? –

+0

これはh:メッセージMaciejが大変感謝しています。回答を投稿することができますので、最終的な回答としてマークします。 – luka032

+0

クール..私は他の人も同様に利益を得ることができるように答えを掲載しました –

答えて

1

結局、あなたは時間が必要になります:メッセージタグは.. requiredMessageは、メッセージタグに印刷するものにフレームワークのためのヒントです。

だから、あなたは次のように設定しておく必要があります。

<h:form> 
    <h:message showSummary="true" showDetail="false" 
     id="errorsMessages" 
     for="txt"/> 
     <h:panelGrid columns="2"> 
      <h:outputLabel for="mname">Username&nbsp;</h:outputLabel> 
      <h:inputText id="txt" required="true" requiredMessage="Username is required."> 

      </h:inputText>         
      <h:commandButton value="Submit"></h:commandButton> 
     </h:panelGrid> 
</h:form> 
関連する問題