• 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>



  • 相关阅读:
    关于递归的理解
    every few days
    相见恨晚
    VC中自定义消息处理函数的步骤
    wparam和lparam的区别
    VC中新建的类不见了的解决方法
    接连遇到大牛
    老总NB的 romman.sys
    [恢]hdu 1159
    [恢]hdu 1996
  • 原文地址:https://www.cnblogs.com/zyy1688/p/10276507.html
Copyright © 2020-2023  润新知