Wie extrahiere ich den Feldnamen und die Fehlermeldung aus der MethodArgumentNotValidException-Klasse?Java

Java-Forum
Anonymous
 Wie extrahiere ich den Feldnamen und die Fehlermeldung aus der MethodArgumentNotValidException-Klasse?

Post by Anonymous »

Ich verwende die Annotation javax.validation.Size, um die Validierung der String-Größe durchzuführen.

Code: Select all

@Data
public class EventRequestBean {

@Size( max = 40 )
private String title;

@Size( max = 50 )
private String topic;
}
Und ich verwende einen globalen Ausnahmehandler, um die benutzerdefinierte Ausnahme auf der Clientseite auszulösen.

Code: Select all

@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;
}
In meiner benutzerdefinierten Ausnahme DataException ist das zweite Argument die Fehlermeldung. Ich möchte den Feldnamen und die gültige Größenbeschränkung als Nachricht festlegen.

Ich versuche, den Feldnamen aus der ausgelösten Ausnahme abzurufen, aber anstatt mir den zu geben name title, es gibt mir den Parameternamen eventRequestBean, den ich in dem Controller verwende, von dem aus diese Ausnahme ausgelöst wird.

Code: Select all

@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);
}
}
Wie kann ich den Feldnamen und die festgelegte gültige Größe erhalten, damit ich meine eigene benutzerdefinierte Ausnahme erstellen kann?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post