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>


spring mvc 数据绑定入门的更多相关文章

  1. Spring MVC数据绑定入门总结

    1.基本类型 基本类型参数不可为空 正例:http://localhost:8080/demo/he?id=2 反例:http://localhost:8080/demo/he?id=(报400错误) ...

  2. Spring Mvc的入门

    SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的. Spring Web MVC是什么: Sprin ...

  3. Spring MVC【入门】

    Spring MVC[入门]就这一篇! MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Mod ...

  4. spring mvc框架入门

    目录 1.web框架分层 2.什么是springmvc 3.springmvc的优势 4.springmvc和struct的区别 (spring mvc框架入门 1.web框架分层 一般web框架可以 ...

  5. Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验

    Spring MVC数据绑定机制 数据转换 Spring MVC处理JSON 数据格式化配置使用 数据校验 数据校验 Spring MVC数据绑定机制 Spring MVC解析JSON格式的数据: 步 ...

  6. 挪过来的spring mvc 的入门 介绍

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  7. spring mvc 数据绑定

    1.spring mvc 默认提供的数据绑定类 private List<HandlerMethodArgumentResolver> getDefaultArgumentResolver ...

  8. spring MVC框架入门(外加SSM整合)

    spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...

  9. spring+spring mvc+JdbcTemplate 入门小例子

    大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒)    https://www.cnblo ...

随机推荐

  1. Cookie的遍历

    全Cookie遍历 思路: 1.遍历主键 2.遍历每个主键下的子健 遍历语句: Foreach (string _key in request.cookie.Allkeys) { //对主键遍历... ...

  2. WPF-MVVM学习心德(WinForm转WPF心德)

    接触MVVM接近一段时间了,有一点理解,写下来. 之前是做winform的,工作需要,学习wpf.优缺点就不用说类,网上一大堆.我自己理解的话,有下面几点: 1.首先是界面的xmal和界面分离:wpf ...

  3. PAT 1055 The World's Richest

    #include <cstdio> #include <cstdlib> #include <cstring> #include <vector> #i ...

  4. 在 CentOS 上安装 node.js

    进入到 /usr/local/ 目录中: cd /usr/local/ 创建 nodejs 文件夹: mkdir -p nodejs 进入到 nodejs 目录中: cd nodejs 下载 node ...

  5. 使用putty远程登录Ubuntu时,报Network error:Connection refused错误

    putty远程登录Ubuntu,弹出Network error:Connection refused的错误提示框,就是因为Ubuuntu没有安装ssh服务.执行命令: sudo apt-get ins ...

  6. 【IOS】IOS综合

    取精华.去糟粕!适合iOS开发者的15大网站推荐 E:/IOS视频: IOS基础/01 苹果开发零基础教程 3780m --> 63h /02 IOS开发快速入门教程 /03  IOS开发进阶教 ...

  7. SOL的补充

    之前写过一些关于远程安装系统的文档,但是对于SOL还是糊涂不清. Serial Console 可以将输入输出转发到串行接口(com1, com2), 假如你有串行读取设备,就可以看到显示,控制输入. ...

  8. sqlserver内存管理之lazy writer

    任何在缓冲区被修改的页都会被标记为“脏”页.将这个脏页写入到数据磁盘就是CheckPoint或者Lazy Writer的工作.前面就大体说了一下checkpoint,这会就简单的理解一下这个lazy ...

  9. mysql使用mysqld_multi工具启动多实例

    先给出实验环境/etc/my.cnf文件内容修改内容为:添加了[mysqld_multi]标签和多出来两个数据库的标签[mysqld3307]和[mysqld3308]配置完成后启动方法,举一例:my ...

  10. C/C++ 修改控制台程序文字颜色

    可以修改前景色(字体颜色)和背景色. 示例代码如下: #include <iostream> #include <Windows.h> //需要引用Windows.h usin ...