• Spring MVC数据绑定


    1. public String other(Locale locale, Principal principal)  
    2. java.util.Locale:得到当前请求的本地化信息,默认等价于ServletRequest.getLocale(),如果配置LocaleResolver解析器则由它决定Locale,后续介绍;

      java.security.Principal:该主体对象包含了验证通过的用户信息,等价于HttpServletRequest.getUserPrincipal()。

    3. http://jinnianshilongnian.iteye.com/blog/1698916

    且不能直接绑定到map,list,set等,因为他们是接口 ,并不能实例化,若要绑定到其中,需要放在某个bean中。

     

    浅谈 SpringMVC 数据绑定

    页面传数据有两种方式

    1、参数与值对,一大堆参数与一大堆值对,form提交时常用

    这种,Spring mvc可以直接在后台绑定到方法的参数中,如参数为permissions,则就可以直接绑定到该参数上。

    2、json字符串型

    以{}为开始与结束的标志

    这种对于没有插件的Spring来说是无法绑定的,要绑定则需要

    扩展SpringMVC以支持绑定JSON格式的请求参数

    或者可以使用@RequestBody把整个请求作为整体传递给后台

    使用时机:

    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指定;

    method(@RequestBody Map map) {
     
    map.get("code");
     
    }
    这样也是可以的,但是并不能绑定到对象上,不建议使用。
    method(@RequestBody JSONObject jsonObj) {
      jsonObj.getString("code");
    }
    这样也行,前提是要配置转换器
     
    前台传数组的话必须使用param[index]="xxx"来传递,如果没有index也会有问题。但是如此的话,直接使用对象发送ajax就有问题了,必须使用html标签名为param[index]来最终传递对象。
     
    js中对象不能
    {
    s[0]=1,
    s[1]=2
    }
    这种形式定义数组。
    而且若不以这种形式定义数组,提交后的参数中并没有数组下表,后台绑定数据可能有误。
    若直接post js对象,且不经过json转换,则js对象中的数组会变为
    name[]=xx
    name[]=yy
    的这种形式
     
     
    使用BindingResult返回错误信息到页面。
    http://blog.sina.com.cn/s/blog_6829be5c0101alxh.html
  • 相关阅读:
    3.2spring源码系列----循环依赖源码分析
    3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖
    Jetson AGX Xavier ROS 调用usb单目摄像头运行ORB_SLAM2
    Jetson AGX Xavier ROS下调用USB单目摄像头
    SpringCloud-OpenFeign组件的使用
    SpringCloud-服务间通信方式
    SpringCloud-服务注册中心
    SpringCloud入门
    K8s—集群搭建
    Redis—过期策略以及内存淘汰机制
  • 原文地址:https://www.cnblogs.com/guangshan/p/4494503.html
Copyright © 2020-2023  润新知