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;

そして、同じコードが他の場所で機能しています ほぼすべての組み合わせを試したものを提案してください。


Unicode 一般カテゴリの GC=Mark と GC=Punctuation の違いは何ですか?

いくつかの概念を理解するのに苦労しています。Unicode 仕様には、 general categoryというプロパティがあります。

OK 文字 (通常の文字; GC=L)、数字 (数字の 0 ~ 9 などの数値を持つその他の文字; GC=N)、セパレータ (区切り記号; ) のそれぞれが何であるかを理解しましたGC=ZGC=Sしかし、記号 ( )、句読点 ( GC=P)、マーク ( )を区別するのは非常に困難GC=Mです。

それらのリストを調べましたが、概念的な違いは見つかりませんでした。そして、このドキュメントはあまり役に立ちません。これらすべての違いは何ですか?

4

3 に答える 3

1

問題はコントローラー関数の署名にあると思います。他のオブジェクトで検証しており、モデル属性は別のオブジェクトです。これは、オブジェクトを検証してフォームにエラーを表示する正しい方法ではありません。

メソッドのシグネチャは次のようになります。

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

これで、検証しているビューに同じオブジェクトをバインドします。

お役に立てば幸いです。

乾杯。

于 2012-05-14T05:49:32.147 に答える
0

@NotNullと一緒に注釈を付けることができます@NotEmpty@Validモデル属性の前にコントローラーで試すこともできます。他のページが機能しているとあなたが言ったので、これらは単なる推測です。

于 2012-05-14T05:45:13.443 に答える
0

あなたの例の名前がなぜ一致しないのか、少し疑問に思っています。

一方では:他方contactName<form:errors path="contactName" cssClass="Err"/>は:title

これが原因でありますように。


これが機能しない場合は<form:errors path="*" cssClass="Err"/>、(from 内で) すべてのエラー メッセージを表示してみてください。そのテストの結果は、問題がビューにあるのか、コントローラーにあるのかを判断するのに役立つことを願っています。

于 2012-05-13T12:28:29.863 に答える