相关疑难解决方法(0)

如何从BindingResult获取控制器中的错误文本

我有一个返回JSON的控制器.它采用一种形式,通过弹簧注释验证自己.我可以从BindingResult获取FieldError列表,但它们不包含JSP将在标记中显示的文本.如何将错误文本发送回JSON?

@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;
    }

}
Run Code Online (Sandbox Code Playgroud)

JSONREsponse类只是一个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...
}
Run Code Online (Sandbox Code Playgroud)

调用BindingResult.getAllErrors()返回FieldError对象的数组,但它没有实际的错误.

java spring json spring-mvc spring-annotations

25
推荐指数
3
解决办法
6万
查看次数

标签 统计

java ×1

json ×1

spring ×1

spring-annotations ×1

spring-mvc ×1