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. 02.switch的使用

    基本语法: switch-case语法: switch(表达式/变量) { case 值1: 语句块1; break; case 值2: 语句块2; break; default:语句块3; brea ...

  2. shutil模块——高级的文件、文件夹、压缩包处理模块

    将文件内容拷贝到另一个文件 shutil.copyfileobj('fsrc', 'fdst', 'length') 方法源码: def copyfileobj(fsrc, fdst, length= ...

  3. shell 复制/备份文件 脚本

    #!/bin/sh # author hapday # -- echo "以时间日期为名称基准备份 war 包." date +%Y-%m-%d-%H-%M-%S cp artup ...

  4. node:fs-extra模块

    var fs = require('fs-extra'); //复制 并会覆盖已有文件 fs.copy('./demo/index.html','./demo/index2.html' ,(err) ...

  5. C++基础--extern的用法

    extern作为外部变量扩展的用法: 1. 主要作用是扩展变量或者函数的应用范围: 2. extern的用法是相对于全局变量而言: 3. 在看到extern这个关键字的时候说明这个变量已经在别的源文件 ...

  6. 使用CKRule实现PVC配方计算

    1,PVC计算的基本原理 配方员设计好配方,再进行抽象提炼,会出现相对于软件而言可以理解的逻辑,如属性的概念,对厂企生成的PVC产品而言,一般都有产品大类名称,花纹,颜色,长度,宽度,厚度等概念,这对 ...

  7. Daily paper -Science 2006: Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market (探究群体行为对商品销量的影响)

    论文:      Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market 发表期刊 ...

  8. C++字符分割

    AfxExtractSubString 表头: <afxwin.h> BOOL AFXAPI AfxExtractSubString ( CString& rString, LPC ...

  9. jQuery Event.stopImmediatePropagation() 函数详解

    stopImmediatePropagation()函数用于阻止剩余的事件处理函数的执行,并防止当前事件在DOM树上冒泡. 根据DOM事件流机制,在元素上触发的大多数事件都会冒泡传递到该元素的所有祖辈 ...

  10. SQL Server ->> 存储过程sp_rename重命名数据对象

    1) 表转移Schema和重命名表 ALTER SCHEMA Stage TRANSFER dbo.Stage_AAA; EXEC sp_rename 'Stage.Stage_AAA', 'AAA' ...