记一次没加@ResponseBody引起的报错,@RestController、@Controller、@ResponseBody三注解使用错误导致

报错过程

原文件是这样写的

@Controller
@RequestMapping("manage")
public class ManageController {
    /**
     * 上传文件接口
     * */
    @RequestMapping(value = "/uploadFile", method = POST)
    @ResponseBody
    @SystemLog(module="通知公告",methods="上传文件接口")
    public ResponseResult<Object> uploadFile(@RequestParam("file") MultipartFile file){}
}

在跑完这个接口后,后台报错

[THYMELEAF][http-nio-2320-exec-9] Exception processing template "manage/uploadFile": An error happened during template parsing (template: "/views/manage/uploadFile.html")
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "/views/manage/uploadFile.html")
	at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:235) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
	at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
	at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]

都报错可知
因没写ResponseBody,THYMELEAF去根据请求名,去找页面去了。

/views/manage/uploadFile.html

因没有这个页面后台报错。

错误排查过程:

1.我这边前端用的layui的upload控件

 upload.render({
                elem: '#input'
                ,url: 'uploadFile'
                ,accept:'file'
                ,size:"50000"//kb
                ,before: function (obj) {
                    layer.load();
                })

来进行上传文件调用后台的,所以报错被是upload控件封装了。报错如下:
在这里插入图片描述

在这里插入图片描述
起初没想到这个报错被封装的问题,以为是我写的拦截器对请求进行拦截报的错,排查了很长时间的拦截器问题。

究其原因:

如果controller层用的@RestController注解,就不会出现此问题
而我这边用到的是@Controller注解,那么返回则需要加上@ResponseBody注解。
如果未加,系统会去后台找请求路径同名的html页面(取决于拦截器写的后缀,还可能是jsp文件等)进行返回。

如果无需通过string返回页面,可以使用@RestController注解,那就不用加@ResponseBody了,也可以使用@RestController再用ModuleAndView来返回页面

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值