に対応するオブジェクトを使用しながらSpringMvc、較正パラメータは、@Valid注釈を使用することができます
@NotBlank(メッセージ= "ニックネームかもしれない空ではない")
@NotNull(メッセージ= "IDを空白にすることはできません")
@Pattern(
メッセージ= "スペースを含めることはできません"
、正規表現= "\\ S +"
)
などなど。
これは、すべてのパラメータが再びそれをチェックしているチェックしますので、それは例外のリストでもっと良かったはず、直接使用e.getMessage()は、出力が面倒なものがたくさんになります
良い解決策
@Validライブ注釈は例外があるチェック org.springframework.validation.BindException
だから、あなたは追加することができ、異常インターセプタを特にこの異常を傍受し、解決するために、
次のように:
パッケージcn.jiashubing.config; 輸入cn.jiashubing.result.ResultModel; 輸入org.springframework.validation.BindException。 輸入org.springframework.validation.ObjectError。 輸入org.springframework.web.bind.annotation.ControllerAdvice。 輸入org.springframework.web.bind.annotation.ExceptionHandler。 輸入org.springframework.web.bind.annotation.ResponseBody。 輸入はjava.util.List; / ** * @authorのjiashubing * @since 2019年6月17日 * / @ControllerAdvice パブリック クラスBingExceptionHandler { @ExceptionHandler(。はBindException クラス) @ResponseBody 公共ResultModel handleBindException(例外E){ // プリントの検証は、すべてのエラーメッセージを生きる のStringBuilder SB = 新新のStringBuilder( "エラーパラメータ:[" ); リスト <ObjectError>リスト= (( ;はBindException)E).getAllErrors() のためのリスト){(ObjectError項目 sb.append(item.getDefaultMessage())アペンド( '' ); } sb.deleteCharAt(sb.length() - 1 )、 SB .append( ']' ); 文字列MSG =sb.toString(); 返す 新しい ResultModel(偽、MSG)。 } }
オリジナルの記事は、歓迎転載し、ソースを明記してください!