我正在使用javax.validation.Size
注释来执行字符串大小验证。
@Data
public class EventRequestBean {
@Size( max = 40 )
private String title;
@Size( max = 50 )
private String topic;
}
我正在使用全局异常处理程序将自定义异常抛出到客户端。
@ExceptionHandler( { MethodArgumentNotValidException.class } )
public final ResponseEntity handleException( Exception e, WebRequest request )
{
if( e instanceof MethodArgumentNotValidException )
{
MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e;
String parameterName = exception.getParameter().getParameterName();
// return buildError(new DataException(GeneralConstants.EXCEPTION, "Invalid content length: field +"e))
return null;
}
return null;
}
在我的自定义异常DataException
中,第二个参数是错误消息。我想将字段名称和有效大小约束设置为消息。
我试图从引发的异常中获取字段名称,但不是给我 name ,而是给我我在引发此异常的控制器中使用title
的参数名称。eventRequestBean
@PostMapping( "/event" )
public ResponseEntity createEvent( @Valid @RequestBody EventRequestBean eventRequestBean )
{
try
{
log.info(GeneralConstants.LOGGER_CONSTANT,
" Entered create event controller, path:rest/events/event - POST");
userCommons.throwExceptionForOtherThanAdminUser(getLoggedInUser());
return buildResponse(eventService.addEvent(eventRequestBean, getLoggedInUser()));
}
catch( DataException e )
{
return buildError(e);
}
}
如何获取字段名称和设置的有效大小,以便创建自己的自定义异常?