使用JSON的Spring 3异常处理

Syd*_*ney 6 java jquery json spring-mvc

我有一个Controller,我想得到反馈给用户的错误.执行错误回调但错误消息不会发送回客户端.

JQuery调用:

var validateButton = $('#validateSteps');
validateButton.bind('click', function() {
    var stepsInput = $(':input').serializeArray();
    $.postJSON('validate.htm', stepsInput, function(data) {
        alert(data);
        var steps = $('#steps');
        var i = 0;
        for(i=0;i<data.length;i++) {
            steps.stepWidget('setValidationStatus', {testStepId: data[i].testStepId, interactionType: data[i].interactionType, validationStatus: data[i].validationStatus} );
            steps.stepWidget('setErrorDescriptions', {testStepId: data[i].testStepId, interactionType: data[i].interactionType, errorDescriptions: data[i].errorDescriptions} );
        }
        return false;
    }, {
            error: function (XMLHttpRequest, textStatus, errorThrown, data) {
                alert("error function");
                alert(textStatus);
                alert(errorThrown);               
                alert("Internal Server Error: " + data);
            return false;
        }
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

控制者:

@RequestMapping(value = "validate.htm", method = RequestMethod.POST)
public @ResponseBody
List<ValidationBean> validateSteps(
        @RequestBody List<Map<String, String>> testCaseInputs,
        HttpServletResponse response) throws MalformedMessageException,
        MalformedProfileException, XmlException, IOException,
        MissingDependencyException, MessageValidationException {
    List<ValidationBean> validations = new ArrayList<ValidationBean>();
    ...
    return validations;
}
Run Code Online (Sandbox Code Playgroud)

控制器中的异常处理程序:

@ExceptionHandler(Exception.class)
public @ResponseBody
String handleException(Exception e, HttpServletResponse response) {
    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    return e.getMessage();
}
Run Code Online (Sandbox Code Playgroud)

我想向用户展示的是StringhandleException方法应该返回的内容.在error回调data参数中undefined.