問題タブ [spring-mvc-initbinders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1283 参照

propertyeditor - Set タイプの PropertyEditor の問題

使用: Spring 3.2 ポートレット MVC と Liferay 5.2.3 および Tomcat 6.0.18

Set<Type>と の間で変換する PropertyEditor を作成しようとしていますString。無事Set<Type>String仕事に就くことができました。しかし、プロパティ エディタを逆方向に認識させることができません。Type-> String->でこれを成功させましたTypeが、 a の変換を行うことSetは私を避けています。

SetAsText メソッドが呼び出されていないと判断したため、変換が行われなかったことを示す実行時エラーが発生しました。propertyEditors に関する情報は非常にまばらで、1 つまたは 2 つの例外を除いて、私が見つけることができたあいまいに関連する問題は 4 年以上前のものだけです。

見えないほど基本的なものが欠けているか、フレームワークの奥深くにあるものですが、何か助けや提案があればありがたいです。

コントローラーの @InitBinder スニペットは次のとおりです。

これが私のPropertyEditorです:

Type クラスのスニペットは次のとおりです。

0 投票する
1 に答える
974 参照

java - Spring を使用したグローバル initBinder の作成

私は Spring 3.2 を使用しており、悪意のあるユーザーがバインドされたオブジェクトに値を挿入できないように、バインドを許可する属性をコントローラーに強制的に指定させる方法を探しています。Spring はsetAllowedFields()、ホワイトリスト /setDisallowedFields()ブラックリストへの使用を推奨しています。

このホワイトリストを手動で行うのではなく、動的に行いたいので、フォームに表示される属性をバインドしたいと考えています。

このホワイトリストを取得することは可能ですか? フォームの可視属性を取得する方法はありますか?

ありがとう。

0 投票する
0 に答える
709 参照

java - dateFormatter タイムスタンプと日付が一致する方法

しかし、タイムスタンプも使用したため、これもエラーです。

フィールド 'dupd' のオブジェクト 'identitas' のフィールド エラー: 拒否された値 [2013-12-13 11:19:33.0]; コード [typeMismatch.identitas.dupd,typeMismatch.dupd,typeMismatch.java.sql.Timestamp,typeMismatch]; 引数 [org.springframework.context.support.DefaultMessageSourceResolvable: コード [identitas.dupd,dupd]; 引数 []; デフォルトメッセージ [dupd]]; デフォルト メッセージ [タイプ 'java.lang.String' のプロパティ値をプロパティ 'dupd' の必要なタイプ 'java.sql.Timestamp' に変換できませんでした。ネストされた例外は java.lang.IllegalArgumentException: プロパティ 'dupd' の型 [java.lang.String] の値を必要な型 [java.sql.Timestamp] に変換できません: PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] が返されましたタイプ [java.util.Date] の不適切な値]

日付形式の日付とタイムスタンプを一致させる方法は?

0 投票する
2 に答える
3639 参照

java - すべてのコントローラー用の spring mvc one init バインダー

InitBinder5 つのコントローラーがあり、それらすべてにを登録したいと考えています。

このコードをそれぞれに追加できることはわかっています。

しかし、一度だけ定義したいと思います(StringWrapperEditor毎回新しいものを作成する代わりに、Beanを作成して使用することもできます)。

SOや他の場所を検索しましたが、答えは見つかりませんでした。それは可能ですか?

java 1.6でSpring 3.1.1を使用しています。

0 投票する
1 に答える
1000 参照

spring - AspectJ: Initbinder で Autowired フィールドが null になる

ここで説明されているように AspectJ を実装しました: https://stackoverflow.com/a/10998044/2182503

@Autowired私のフィールドが 内で null であることに気付くまで、このソリューションは正常に機能します@InitBinder。フィールドは、 内でのみ null@InitBinderです。

なぜそれらがnullの場合とそうでない場合があるのか​​ 理解できません。(同じクラス内で)

0 投票する
1 に答える
268 参照

spring - Spring MVC ですべてのプロパティが空の場合、ネストされた Bean を null にバインドします

Person クラスのインスタンス変数を持つ Account クラスがあるとします。

フォームの POST ボディに次のパラメータが含まれている場合:

すべてのプロパティが空であっても、Spring は新しい Person をインスタンス化します (または null、@ControllerAdvice を @InitBinder で使用しているため、String に StringTrimmerEditor を設定しています)。その場合、Spring に Person インスタンスを作成しないように指示する方法はありますか?

0 投票する
1 に答える
3931 参照

java - Spring 4 ControllerAdvice と InitBinder

@ControllerAdvice クラス内の @InitBinder アノテーション付きメソッドを使用して、グローバル InitBinder を登録しようとしています。

私が抱えている問題は、ロード時に @InitBinder を見つけていることですが、「INIT BINDER」が System.out に出力されないため、実際にはメソッドに入らないことです。これは、カスタム エディターが登録されていないため、機能しないことを意味します。initBinder メソッドをコントローラの 1 つにコピー アンド ペーストすると、その特定のコントローラで問題なく動作します。

ここで何が起こっているのですか?