如何解决Spring 3使用JSON的异常处理
| 我有一个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\',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;
});
控制器:
@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;
}
控制器中的异常处理程序:
@ExceptionHandler(Exception.class)
public @ResponseBody
String handleException(Exception e,HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return e.getMessage();
}
我想向用户显示的是应由handleException
方法返回的String
。在error
回调中,data
参数是undefined
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。