Tôi có một bộ điều khiển trả về JSON. Nó có một hình thức, xác nhận chính nó thông qua các chú thích mùa xuân. Tôi có thể lấy danh sách FieldError từ BindingResult, nhưng chúng không chứa văn bản mà JSP sẽ hiển thị trong thẻ. Làm thế nào tôi có thể nhận được văn bản lỗi để gửi lại trong JSON?Cách lấy văn bản lỗi trong bộ điều khiển từ 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;
}
}
lớp JSONREsponse chỉ là một 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() trả về một mảng các đối tượng FieldError, nhưng nó không có lỗi thực tế.
Hãy nói rằng tôi đã sau trong ValidationMessages.pr operties: "answerform.questionId.invalid = Id câu hỏi không hợp lệ: {0}." fieldError.getCode() sẽ trả về "answerform.questionId.invalid", tôi đang tìm lỗi, không phải mã, ví dụ: "Id câu hỏi không hợp lệ: 123" – Mike
@Mike See ** Update **! –
@Mike Nếu câu trả lời của tôi fullfil nhu cầu của bạn, nó sẽ có thể bạn đánh dấu nó như được chấp nhận? –