《@Controller和@RestController有何不同》

前言:

       @RestController注解相当于@ResponseBody + @Controller合在一起的作用

正文:

   一。swagger接口测试报错404

  二。问题定位

        首先想到是否是controller层,接口地址写错,通过查看,没有任何问题:

        其次,再仔细看了错误信息:与jsp有关,目前是前后端分离,前端采用Angular工程独立部署,怎么会出现jsp的问题呢?

       再深入思考,前后端没有分离之前,一般采用的jsp,那就跟之前的实现原理有关,继而想到了controller层的注解,这回找到了问题的根源:

   三。具体原理解析

        1.在controller层添加注解@RestController,则Controller层方法无法返回jsp页面或者htm,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容即为return的内容

        2.如果需要返回jsp或者html,则需要@Controller配合视图解析器InternalResourceViewResolver

        如果需要返回JSON,XML或者自定义mediaType内容到页面,需要在相应的方法上加@ResponseBody注解。

   四,问题解决方案

         将@Controller注解更改为@RestController,因为目前公司项目是前后端分离的,以Restful风格进行前后端交互,Controller层无需返回jsp或者html,需要的是JSON.

 

 

结语:

              在项目中锻造,在错误中成长。

              巨人肩膀:https://www.cnblogs.com/shuaifing/p/8119664.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值