@RestController 和 @Controller 的区别[通俗易懂]

@RestController 和 @Controller 的区别[通俗易懂]@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面理解下面的注解哦。@ResponseBody表示该方法的返回结果直接写入HTTPrespons…

大家好,又见面了,我是你们的朋友全栈君。

@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

理解下面的注解哦。

@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

 

撸代码:

//@RestController
@Controller
@RequestMapping("falarmUser")
public class FAlarmUserController {

    private static final Logger logger = LoggerFactory.getLogger(FAlarmUserController.class);

    @Autowired
    private FAlarmUserService fAlarmUserService;

    /**
     * 添加用户
     * @param userEntity
     * @return
     */
    @PostMapping("addUser")
    public Object addUser(@RequestBody FAlarmUserEntity userEntity){
        logger.info("添加成员的信息 : "+userEntity.toString());
        Response res = new Response();
        res = fAlarmUserService.addUser(userEntity);
        return res;
    }

}

Response 类:

@JsonInclude(value = JsonInclude.Include.NON_EMPTY)
public class Response implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer code;

    private Object data;

    private String message;

    public Response() {
        super();
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

如果是用@RestController ,请求之后返回的结果如下。

@RestController 和 @Controller 的区别[通俗易懂]

如果使用 @Controller,返回结果 如下;

@RestController 和 @Controller 的区别[通俗易懂]

@Controller 注解不能将结果写入到  HTTP response body 中,因而无法正常显示。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148207.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TCN代码实现[通俗易懂]

    TCN代码实现#导入包importosimporttorchfromtorchimportnnfromtorch.autogradimportVariableimportpicklefromtorch.nn.utilsimportweight_normimportargparseimporttimeimportmathimporttorch.o…

    2022年4月7日
    137
  • qt报错lnk2019_2019咬文嚼字十大错误

    qt报错lnk2019_2019咬文嚼字十大错误Qt错误:LNK2019:无法解析的外部符号原因及解决办法删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解决了,写篇博客记录下。错误原因1:函数(一般是槽函数)在.h中声明,但却没有实现如图,我在自己的automatic.c文件中生成了一个按钮的点击处理函数,后面不想用了,把它删掉了,但是在automatic.h中忘记删掉声明了,于是系统编译报错。所以删掉声明就好。错误原因2:添加新的.ui窗体文件时编

    2022年10月6日
    2
  • 论文投稿Cover letter[通俗易懂]

    论文投稿Cover letter[通俗易懂]转自:http://blog.sciencenet.cn/blog-479412-686426.html,感谢分享!1.第一次投稿Coverletter:主要任务是介绍文章主要创新以及声明没有一稿多投DearEditors:Wewouldliketosubmittheenclosedmanuscriptentitled“PaperTitle”,whichwewis…

    2022年5月3日
    47
  • Nginx工作原理和优化总结。「建议收藏」

    NGINX以高性能的负载均衡器,缓存,和web服务器闻名,驱动了全球超过40%最繁忙的网站。在大多数场景下,默认的NGINX和Linux设置可以很好的工作,但要达到最佳性能,有些时候必须做些调整。首先我们先了解其工作原理。1.Nginx的模块与工作原理Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客…

    2022年4月13日
    87
  • linux开启ssh命令(linux开启端口命令)

    在使用SSH时,经常会出现用sshsecureshellclient连接linux连接不上:解决方法如下: 如果没安装ssh,其安装过程:1.以root身份登入系统(没登入系统和没有足够的权限都不能安装,晕,这不是废话)2.检查安装系统时是否已经安装SSH服务端软件包: rpm-qa|grepopenssh 若显示结果中包含openssh-serve

    2022年4月14日
    383
  • jsp页面数据格式化

    jsp页面数据格式化本来以为数据格式化很简单 但是在今天的工作中发现自己确实有很多的不足 由于系统分模块开发 导致了 jsp 页面的 el 表达式 struts2 标签 以及页面样式的不同 让我经历了 3 个不同的页面格式化阶段 一 页面 js 的数据格式化 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 工作项目中用到的是 easyui 的页面 nbsp nbsp nbsp nbsp nbsp nbsp 金额格式化 varDM digit 2 小数点位

    2025年9月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号