2012-05-13 16 views
0

朝から私は問題が残っています。 同じ場所で動作していて、2番目の場所で動作していない はエラーを表示していません。 この質問に何度も尋ねられましたが、私はすべての質問と解決方法を参照していますが、問題は同じです。コントローラで使用しているコードを同じにしています。<形式:エラーが発生していません

@RequestMapping(method = RequestMethod.POST) 
    public String findRide(@ModelAttribute("postAd") PostAdRR user,ModelMap model,@Valid PostAdRR postAd, 
    BindingResult result,HttpSession session,HttpServletRequest request) { 
    if (result.hasErrors()) { 
     System.out.println(result.toString()); 

      return "postAd"; 
    } 

でも、エラーブロックに入り、SOPラインを印刷します。

しかし、フォームには表示されません。

<form:form method="POST" commandName="postAd" enctype="multipart/form-data" > 
    <form:errors path="contactName" cssClass="Err"/> 

と私のドメインクラス(PostAdRR)コード

@NotEmpty(message = "You must provide Title.") 
    private String title =null; 

であり、同じコードが他の場所 に取り組んでいるほとんど私はすべての組み合わせを試してみました何かを提案してください。

答えて

0

あなたのエキササンプルの名前が一致しないのはなぜかと思っています。

一方で、それは次のようになります。他の<form:errors path="contactName" cssClass="Err"/>contactNameそれは次のとおりです。title

は、これが原因である可能性があります。


これはすべてのエラーメッセージを表示するように(から以内)<form:errors path="*" cssClass="Err"/>をしようと動作しない場合。そのテストの結果は、問題が表示されているかどうかを判断するのに役立ちます。

+0

ありがとうございました。それは間違っていたので、あなたの提案を試みました。まだ運がない。 – Pedantic

+0

これは第2の形式で動作しない理由と同じ設定が最初の形式で動作する理由を理解できません。 – Pedantic

+0

@Abhishekもしそれがタイプミスなら、それをなぜ訂正しないのですか? – Ralph

0

@NotNull@NotEmptyの注釈を付けることができます。また、あなたのモデル属性の前にコントローラで@Validを試すことも可能です。あなたが他のページが働いていると言って以来、これらはちょうど推測です。

1

私の問題はあなたのコントローラの機能シグネチャにあると思います。 他のオブジェクトで検証していて、モデル属性が別のオブジェクトです。これは、オブジェクトを検証してフォーム上にエラーを表示する正しい方法ではありません。

お客様のメソッドの署名は次のとおりです。

public String findRide(@Valid @ModelAttribute("postAd") PostAdRR user,ModelMap model, BindingResult result,HttpSession session,HttpServletRequest request) 

これで、検証対象のビューに同じオブジェクトがバインドされます。

希望はあなたを助けます。

乾杯。

関連する問題