Ho un controller che restituisce JSON. Prende un modulo, che si convalida tramite annotazioni a molla. Posso ottenere l'elenco FieldError da BindingResult, ma non contengono il testo che un JSP dovrebbe visualizzare nel tag. Come posso ottenere il testo di errore da inviare in JSON?Come ottenere il testo di errore nel controller da BindingResult
@RequestMapping(method = RequestMethod.POST)
public
@ResponseBody
JSONResponse submit(@Valid AnswerForm answerForm, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) {
if (result.hasErrors()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
JSONResponse r = new JSONResponse();
r.setStatus(JSONResponseStatus.ERROR);
//HOW DO I GET ERROR MESSAGES OUT OF BindingResult???
} else {
JSONResponse r = new JSONResponse();
r.setStatus(JSONResponseStatus.OK);
return r;
}
}
classe JSONREsponse è solo un POJO
public class JSONResponse implements Serializable {
private JSONResponseStatus status;
private String error;
private Map<String,String> errors;
private Map<String,Object> data;
...getters and setters...
}
Calling BindingResult.getAllErrors() restituisce un array di oggetti FieldError, ma non ha gli errori attuali.
Diciamo che ho seguito in ValidationMessages.pr operties: "answerform.questionId.invalid = ID domanda non valido: {0}." fieldError.getCode() restituirà "answerform.questionId.invalid", sto cercando l'errore stesso, non il codice, ad esempio: "ID domanda non valida: 123" – Mike
@Mike Vedere ** Aggiornamento **! –
@Mike Se la mia risposta soddisfa pienamente le tue esigenze, sarebbe possibile contrassegnarla come accettata ??? –