zoukankan      html  css  js  c++  java
  • spring mvc 数据绑定入门

    1:基本数据类型key 是必传的并且必须类型一致

    // http://localhost:8080/bind/baseType.do?xage=10
    @RequestMapping(value = "/baseType.do")
    @ResponseBody
    public String baseType(@RequestParam("xage") int age) {
    return "age:" + age;
    }


    2:包装数据类型key 是不是必须传入的

    / http://localhost:8080/bind/baseType2.do?age=10@RequestMapping(value = "/baseType2.do")
    @ResponseBody
    public String baseType2(Integer age) {
    return "age:" + age;
    }

    3:
    数组类型绑定
    http://localhost:8080/bind/array.do?name=Tom&name=Lucy
    @RequestMapping(value = "/array.do")
    @ResponseBody
    public String array(String[] name) {

    StringBuilder stringBuilder = new StringBuilder();

    for (String item : name) {
    stringBuilder.append(item).append(" ");
    }
    return stringBuilder.toString();
    }

    4:
    简单对象绑定

    public class Admin {

    private String name;

    private Integer age;
    }

    public class User {

    private String name;

    private Integer age;

    private ContactInfo contactInfo;

    }
    http://localhost:8080/bind/object.do?name=Tom&age=10
    http://localhost:8080/bind/object.do?name=Tom&age=10&contactInfo.phone=10086&contactInfo.address=1
    @RequestMapping(value = "/object.do")
    @ResponseBody
    public String object(User user, Admin admin) {

    return user.toString() + " " + admin.toString();
    }
    5:简单对象绑定扩展到不同对象的相同属性名
    http://localhost:8080/bind/object.do?user.name=Tom&
    user.age=10&contactInfo.phone=10086&
    contactInfo.address=1&admin.name=Lucy&admin.age=15

    添加如下bind
    @InitBinder("user")
    public void initUser(WebDataBinder binder) {
    binder.setFieldDefaultPrefix("user.");
    }

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

    6:List对象绑定

    public class UserListForm {
    private List<User> users;
    }


    http://127.0.0.1:8080/bind/list.do?users[0].name=Tom&users[1].name=Lucy
    http://127.0.0.1:8080/bind/list.do?users[0].name=Tom&users[20].name=Lucy

    @RequestMapping(value = "list.do")
    @ResponseBody
    public String list(UserListForm userListForm) {
    return "listsize:" + userListForm.getUsers().size() + userListForm.toString();
    }


    7:
    map对象绑定

    public class UserMapForm {

    private Map<String,User> users;
    }
    http://127.0.0.1:8080/bind/map.do?users['x'].name=Tom&users['x'].age=10&users['y'].name=Lucy

    @RequestMapping(value = "map.do")
    @ResponseBody
    public String map(UserMapForm userMapForm) {
    return userMapForm.toString();

    }

    8:Json类型数据绑定

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

    }
    需要引入
    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>${org.codehaus.jackson.version}</version>
    </dependency>



  • 相关阅读:
    BPM
    rust
    sql
    relational model
    C语言丨还没搞懂逻辑运算符?一篇文章教你区分“真假”!
    掉发不是病,秃起来真要命!作为程序猿的你,脱发了吗?
    什么是正确的编程观?从正确认识C语言开始!
    春运火车票如何安心购票?用C语言实现火车售票系统(源码分享)
    趣味编程丨如何用C语言输出杨辉三角?只需三步!
    2020年编程语言排行榜年终大盘点:C语言连续八个月蝉联第一,C++稳居第四
  • 原文地址:https://www.cnblogs.com/zyy1688/p/10276507.html
Copyright © 2011-2022 走看看