0

春には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 つのシナリオを処理する方法:

  • フィールド名とエラーコードを送信する場合

  • ファイル名ではなく、エラーコードのみが送信される場合。

4

1 に答える 1