zoukankan      html  css  js  c++  java
  • @Responsebody注解

    @RequestBody

    作用: 

          i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

          ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

    使用时机:

    A) GET、POST方式提时, 根据request header Content-Type的值来判断:

    •     application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
    •     multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
    •     其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

    B) PUT方式提交时, 根据request header Content-Type的值来判断:

    •     application/x-www-form-urlencoded, 必须;
    •     multipart/form-data, 不能处理;
    •     其他格式, 必须;

    说明:request的body部分的数据编码格式由header部分的Content-Type指定;

    @ResponseBody

    作用: 

          该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

    使用时机:

          返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

    controller层对应栗子:

    @Controller
    @RequestMapping("system/user")
    public class UserCntroller {
    
        @Resource(name="UserService")
        private UserService userService;
        @RequestMapping(value = "login" , method = RequestMethod.POST)
        @ResponseBody
        public int login(HttpServletRequest request,String account,String password){
            boolean loginResult;
            account = account.trim();
            password = password.trim();
            int flag =userService.login(account,password);
            if(flag == 1){
                System.out.println("sss");
                return 1;
            }else{
                return 0;
            }
        }
    }

    js对应栗子:

    $.ajax({
                type:"POST",
                url:"system/user/login.do",
                data:'account='+account+'&password='+password,
                dataType:"json",
                async:true,
                success:function(data){
                    if(data==1){
                        location.href="index.html";
                    }
                    if(data==0){
                        alert("输入信息有误!!!");
                    }
                },
    未来的你会感谢现在努力的你
  • 相关阅读:
    archlinux .bash_history
    Ubuntu环境下挂载新硬盘
    软碟通 UltraISO U启替代品 Win32DiskImager 无设备 无盘符 无u盘 无优盘 解决方案 之diskpart
    delphi Integer overflow
    MSBuild Tools offline
    delphi synedit免费的拼写检查器dll
    git 自定义命令行
    lua编译
    gcc ar
    Windows Subsystem for Linux (WSL)挂载移动硬盘U盘 卸载 c d 盘
  • 原文地址:https://www.cnblogs.com/cjxblogs/p/7151939.html
Copyright © 2011-2022 走看看