春にはRestFul Webサービスがあり、リクエストパラメーターを検証するためにSpringバリデータIを使用します。私のバリデータは次のようになります。
@Override
public void validate( Object oObject, Errors oErrors )
{
RequestDAO oRequest = (RequestDAO) oObject;
if (Validation on FIELD 1 fails )
{
oErrors.rejectValue( "FIELD1", ERROR CODE );
}
else if ( If any other validation fails )
{
oErrors.rejectValue( "", A Different error code );
//I just want to send the ERROR CODE here and not the name of the filed
//IS it the correct way to do it?
}
}
私の例外ハンドラー クラスでは、検証エラーが発生し、カスタム例外を生成します。
protected AppException convertValidionErrorToCustomException( MethodArgumentNotValidException oMethodArgNotvalidExp ) {
CustomException oAppExp = null;
BindingResult oBindingResult = oMethodArgNotvalidExp.getBindingResult();
// Get the first error associated with a field, if any.
FieldError oFieldError = oBindingResult.getFieldError();
// IF I DONT SENT THE NAME OF THE FIELD I GET NULL ABOVE and thus an NP exp
String sCode = oFieldError.getCode();
if ( StringUtils.isEmpty( sCode ) || !StringUtils.isNumeric( sCode ) )
{
oAppExp = new CustomException( oMethodArgNotvalidExp );
}
else
{
int iErrorCode = Integer.parseInt( oFieldError.getCode() );
String sFieldName = oFieldError.getField();
if ( !StringUtils.isEmpty( sFieldName ) ) {
oAppExp = new CustomException( iErrorCode, sFieldName );
} else {
oAppExp = new CustomException( iErrorCode );
}
}
return oAppExp;
}
私の質問は次のとおりです。Validatorクラスからファイル名ではなくエラーコードのみを送信するにはどうすればよいですか。また、例外ハンドラー メソッドを変更して、次の 2 つのシナリオを処理する方法:
フィールド名とエラーコードを送信する場合
ファイル名ではなく、エラーコードのみが送信される場合。