6

私はサービスメソッドを持っています:

 @GetMapping(path = "/api/some/path", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getWhatever(@RequestParam(value = "page-number", defaultValue = "0") @Min(0) Integer pageNumber, ...

page-numberAPI の呼び出し元がクエリ パラメーターの適切な値を送信しない場合は、javax.ConstraintViolationexception発生しています。例外のメッセージは次のようになります。

getWhatever.pageNumber must be equal or greater than 0

応答本文では、代わりに次のメッセージが必要です。

page-number must be equal or greater than 0

メッセージに引数の名前ではなく、クエリ パラメータの名前を付けたい。引数の名前を含む私見は、実装の詳細を公開しています。

問題は、クエリ パラメータ名を持つオブジェクトが見つからないことです。には無いようConstraintViolationExceptionです。

spring-boot でアプリを実行しています。

どんな助けでも大歓迎です。

PS: 私は、問題を解決すると主張する他の同様のスレッドに行ったことがありますが、実際にはどれも実際には解決していません。

4

4 に答える 4

1

現時点では、それを行うことはできません (注釈ごとにカスタム メッセージを定義する場合を除きますが、それはあなたが望むものではないと思います)。

おかしなことに、最近誰かが非常によく似たものに取り組んでいました: https://github.com/hibernate/hibernate-validator/pull/1029

この作業はマスター ブランチにマージされましたが、この作業を含む新しい 6.1 アルファ版はまだリリースしていません。それは数日の問題です。

そうは言っても、私たちはプロパティを念頭に置いていました。あなたがそれを尋ねたので、おそらくそれをより多くのものに一般化する必要があります。メソッド パラメーターが含まれます。

これで一般的なアイデアが得られたので、それを一般化するのはそれほど面倒なことではないと思います。

寄稿者およびチームの他のメンバーとこれについて話し合い、折り返しご連絡いたします。

于 2019-06-05T20:59:50.993 に答える