数据绑定

Posted test1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据绑定相关的知识,希望对你有一定的参考价值。

1.使用包装类型和基本类型的区别

  包装类型可以为空

  基本类型不可以为空(建议使用别名@RequestParam),

    当没有赋值时:500 Optional int parameter ‘age‘ is present but cannot be translated into a null value due to being declared as a primitive type

    当赋值错误时:http status 400 required int paramenter age is not present

2.多层级对象

  适用于有子对象的数据 使用/object.do?name=ll&age=12&contacttInfo.phone=123243214

3.同属性的多对象

  适用于多个相同的bean的数据,没有list方便

  object.do?user.name=Tom&admin.name=Lucy&age=10

@InitBinder("user")
    public void initUser(WebDataBinder binder){
        binder.setFieldDefaultPrefix("user.");
    }
    @InitBinder("admin")
    public void initAdmin(WebDataBinder binder){
        binder.setFieldDefaultPrefix("admin.");
}

4.list数据的绑定(set可以用来排除相同的数据,set要初始化)

  适用与多个相同的bean的数据 list.do?users[0].name=Tom&users[1].name=Lucy 使用list提供set和get方法进行数据收集

5.set数据绑定

  Set数据绑定时要初始化大小

    set.do?users[0].name=Tom&users[2].name=Lucy

  可以通过重写eques和hashcode方法排除相同的数据使添加数据重复而导致失败

6.map的数据绑定

  map.do?users[‘X‘].name=Tom&users[‘X‘].age=10&users[‘Y‘].name=Lucy

  对map提供set和get方法

7.json

 {"name": "Jim", "age": 16, "contactInfo":
 { "address": "beijing","phone": "10010"     }   }
    @RequestMapping(value = "json.do")
    @ResponseBody
    public String json(@RequestBody User user){
        return user.toString();
}

需要导包

<dependency>

  <groupId>org.codehaus.jackson</groupId>

  <artifactId>jackson-mapper-asl</artifactId>

   <version>1.9.9</version>

</dependency>

8. xml

 <?xml version="1.0" encoding="UTF-8" ?>
<admin>
<name>Jim</name>
   <age>16</age>
</admin>
@RequestMapping(value = "xml.do") @ResponseBody public String xml(@RequestBody Admin admin){ return admin.toString(); } 需要用到 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>4.0.0.RELEASE</version> </dependency> 并且需要对bean进行注解 @XmlRootElement(name="admin") public class Admin @XmlElement(name="name") public String getName() { return name;}

  

 

以上是关于数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

有没有更聪明的方法将布局绑定到片段?

如何用 Android 数据绑定替换 androidx.fragment.app.FragmentContainerView 中的片段

使用 MVVM 和数据绑定更改每个片段中的工具栏标题

Kotlin Android Studio - setContenView - 绑定(片段)

使用绑定从片段访问父活动的 UI 元素

在约束布局中查看片段的绑定不起作用