2011-12-16 10 views
3

私はSpring MVC 3、Spring 3、およびHibernate 2.5を使用します。 入力を検証したいが、動作させることができない:ページに何も表示されない。Spring MVC - Hibernateフォーム:エラーとbindingresult、jspはエラーメッセージを表示しません

私のjsp

<form:form commandName="entrepriseSearch" action="/search" modelAttribute="entrepriseSearch" class="search" method="POST"> 
    <table class="search"> 
     <tbody> 
      <tr> 
       <td> 
        <form:input path="champ1"/> 
        <form:errors path="champ1"/> 
       </td> 
      </tr> 
         ... 
     </tfoot> 
    </table> 
</form:form> 

マイコントローラー

@RequestMapping(value = "search", method = { POST }) 
public String search(@Valid @ModelAttribute("entrepriseSearch") EntrepriseSearch entrepriseSearch, BindingResult bindingResult, Model model) { 

    if (bindingResult.hasErrors()) { 
     // bindingResult works 
     return "domain/domentreprise/showSearchForm"; 
    } 

    return "/search"; 
} 

マイビーン

public class EntrepriseSearch extends SearchForm implements Serializable { 

private static final long serialVersionUID = 1L; 

private String champ1; 

@MinMaxLength(min = 9,max=14, nullable = true) 
public String getChamp1() { 
    return champ1; 
} 

public void setChamp1(String champ1) { 
    this.champ1= champ1; 
} } 

私は何をしないのですか? バインディングは機能しますが、エラーメッセージは表示されません。 ありがとう

+0

誰も知らないですか?上に戻る – user1101608

+0

'bindingResult.getFieldErrors()'の結果をデバッグの目的で印刷してみてください。 –

答えて

0

デバッグ中に、どのメッセージコードにフィールドエラーがあるかを確認します。エラーコードのメッセージを処理できるメッセージソースを指定したことを確認してください。

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basenames="message ... 
1

あなたは、エラーが発生したときに報告するメッセージを追加することもできます。

@MinMaxLength(min = 9,max=14, nullable = true, message="Error here") 
public String getChamp1() { 
    return champ1; 
} 

P/S:あなたが目的をデバッグするためbindingResult.getFieldErrors()の結果をプリントアウトしてみたいことがあります。

関連する問題