7

私は、JSP ファイルを作成するフロントエンド開発者と仕事をしています。<form:errors/>検証/バインディング/処理エラーがSpringのタグで表示できないように見えることを除いて、正しく機能しているフォームがあります。

エラーが設定されていることと、明らかにエラーの正しいパスは何かを確認しました。<form:errors path="*" />パスに関係なく、すべてをレンダリングする必要があると思われますが、何も表示されません。

何が問題なのかを推測するために、タグ ライブラリ ソースにアクセスする必要がありますか?

4

6 に答える 6

17

私が発見した2つのこと。

1) form タグで form-b​​ean / command オブジェクトの名前を指定していることを確認してください

<form:form method="post" enctype="multipart/form-data" commandName="salesOrder">

2) クラス名でフォーム Bean / コマンド オブジェクトに名前を付けていることを確認します。上記の例では、私のクラスは com.abc.xyz.SalesOrder です。モデルで「so」または「order」と呼ぶと、エラーは表示されません。

于 2010-05-26T10:25:10.160 に答える
15

簡単な答え: <form:errors/> は、モデルの「コマンド」オブジェクトにバインドするために <form:form/> 要素内にある必要があります。

于 2009-09-05T17:39:33.970 に答える
3

質問 - "form:error path="xyzProperty" が jsp でエラーを出力しないのはなぜですか?

回答者 -

  1. BindingResult には、エラーのリストを jsp の commandName にバインドする objectName プロパティがあります。

  2. デフォルトの objectName = オブジェクト名。たとえば、クラス名が MyCareerFB の場合、objectName = myCareerFB です。小文字の最初の文字に注意してください。Bean の命名規則に従います。

  3. jsp の commandName の値を objectName と同じにしてください。そうしないと、エラーがオブジェクトにバインドされず、jsp がエラー メッセージを出力しません。

于 2011-06-15T09:08:54.943 に答える
2

これは後世のためだけのものであり、回答がすでに受け入れられていることを確認しています。私自身も同じ症状がありましたが、私にとっての問題は、form:formメソッドの属性値で大文字と小文字が区別されることでした。つまり、method = "post"はエラーを表示しませんが、method="POST"は正常に機能します。ここで特に注意すべき点は、すべてが期待どおりに機能したことです。最終的なJSPにエラーが表示されなかっ たことを除いて、検証が失敗したため、フォームビューは期待どおりに表示されました。

この動作は、AbstractFormControllerを拡張するすべてのコントローラーに存在します。

protected boolean isFormSubmission(HttpServletRequest request)

「POST」.equalsIgnoreCaseの代わりに「POST」.equalsを実行します。

于 2011-01-04T22:32:22.300 に答える
1

私が同じ問題を抱えていたかどうかはわかりません。私の問題は、@ModelAttributeに間違った値を設定したことでした。<form:form/>のcommandNameに値を設定すると正常に機能します。

于 2010-11-19T20:22:10.997 に答える
0

commandName フォーム属性に正しい命名規則を使用していない可能性があります。それが私が遭遇した問題でした。「XYZTask」という名前のクラスがあり、フォームに commandName="xyztask" という名前を付けました。タグによって報告されたエラーが表示されなかったことを除いて、すべてのフォーム マッピングが機能しました。クラスの名前を「XyzTask」に変更し、commandName="xyzTask" の形式にすると、エラーが発生し始めました。

于 2015-02-26T18:56:17.193 に答える