为了账号安全,请及时绑定邮箱和手机立即绑定

getAjaxerror 即使加了 @ResponseBody 注解仍然报 TemplateInputException 异常

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "err/getAjaxerror", template might not exist or might not be accessible by any of the configured Template Resolvers

	@RequestMapping("getAjaxerror")
	@ResponseBody
	public IMoocJSONResult getAjaxerror() {
		int a = 1 / 0;
		int b = a;
		return IMoocJSONResult.ok();
	}


正在回答

3 回答

@RestControllerAdvice

0 回复 有任何疑惑可以回复我~

你在后端接口添加@RequestBody是没有用的,因为他不会返回你的

return IMoocJSONResult.ok();这个结果。

在执行方法体里的int a = 1 0;的时候会被异常捕获机制捕获

在统一处理异常的代码里,已经确定了返回格式为:

@ControllerAdvice

这是老师的代码:

https://img1.sycdn.imooc.com//5afd4b970001341d10760224.jpg

返回的格式不是JSON,使用的返回体的工具类只是对结果的封装,所以会报错,你会发现ajax处理返回请求的时候弹出的alert是:

alert("error");

是这一部分的https://img1.sycdn.imooc.com//5afd4c9f0001357f08640656.jpg

在前一节没有将异常处理统一的时候,单独处理ajax请求时,弹出的alert是success块中:

alert("发生异常"+data.msg);

是这一部分的:

https://img1.sycdn.imooc.com//5afd4cf70001041609320676.jpg

最后的报错的原因还是统一异常处类中类头定义的

@ControllerAdvice

的原因

0 回复 有任何疑惑可以回复我~

/getAjaxerror

0 回复 有任何疑惑可以回复我~
#1

逍遥明月 提问者

开始就是这么写的,没用。
2018-04-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

getAjaxerror 即使加了 @ResponseBody 注解仍然报 TemplateInputException 异常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信