SpringMVC数据绑定一(基本类型、数组和对象(简单对象、层级对象、多参数对象))
一、int和Integer类型
如:参数为int类型的请求
@Controller
public class TestController {
@RequestMapping(value="/baseType")
@ResponseBody//直接返回字符串界面,不用请求获取jsp页面。去掉报404错误,找不到页面。
public String baseType(int age) {
return "age:"+age;
}
}
1。参数为int类型的请求,若没有传入参数,报500的错误
2.参数为int类型的请求,若参数类型错误,报400的错误
正确
1.2@RequestParam
@Controller
public class TestController {
@RequestMapping(value="/baseType")
@ResponseBody
//@RequestParam注解value属性为传参别名,defaultValue默认赋值,required是否必须传值默认true。
//若把required设置为false,不传参则不报错
public String baseType(@RequestParam(value="xage",defaultValue="1",required=false) int age) {
return "age:"+age;
}
}
如:参数为Integer类型
1.若参数请求为Integer类型,没有参数,自动给参数赋值为null
2.若参数请求为Integer类型,参数l类型不匹配,同上也报400错误。
二、参数为数组类型
//http://127.0.0.1:8080/SpringMVC/array?name=Tom&name=Lucy&name=jim
@RequestMapping(value="array")
@ResponseBody
public String array(String[] name) {
StringBuilder sbf = new StringBuilder();
for(String item:name) {
sbf.append(item).append(" ");
}
return sbf.toString();
}
三、参数为对象(简单对象)
//model
public class User {
private String name;
private Integer age; //getter and setting ......
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
//http://127.0.0.1:8080/SpringMVC/object?name=Tom&age=20
@RequestMapping(value="object")
@ResponseBody
public String object(User user) {
return user.toString();
}
三、参数为对象(多层级对象)
1.1model
//联系信息类
public class ContactInfo {
private String phone;
private String address;
//getting and setting............
@Override
public String toString() {
return "ContactInfo [phone=" + phone + ", address=" + address + "]";
}
}
//用户类
public class User {
private String name;
private Integer age;
private ContactInfo contactInfo; //getting and setting............
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", contactInfo=" + contactInfo + "]";
}
}
//http://127.0.0.1:8080/SpringMVC/object?name=Tom&age=20&contactInfo.phone=10086&contactInfo.address=ss
@RequestMapping(value="object")
@ResponseBody
public String object(User user) {
return user.toString();
}
结果显示:
1.2 若参数为2个对象
@RequestMapping(value="object")
@ResponseBody
public String object(User user,Admin admin) {
return user.toString()+" "+admin.toString();
}
两个参数对象被赋予相同的参数
解决办法@InitBinder
//http://127.0.0.1:8080/SpringMVC/object?user.name=Tom&age=20&admin.name=lucy
@RequestMapping(value="object")
@ResponseBody
public String object(User user,Admin admin) {
return user.toString()+" "+admin.toString();
} @InitBinder("user")
public void initUser(WebDataBinder binder) {
binder.setFieldDefaultPrefix("user.");
} @InitBinder("admin")
public void initAdmin(WebDataBinder binder) {
binder.setFieldDefaultPrefix("admin.");
}
SpringMVC数据绑定一(基本类型、数组和对象(简单对象、层级对象、多参数对象))的更多相关文章
- python实例编写(2)--等待,一组对象,层级元素,frame对象处理
一.设置等待 #coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDri ...
- JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面
将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...
- springMVC数据绑定入门
数据绑定是将用户输入绑定到领域模型的一种特性. @controller 注解使类生效 @RequestMapping(value="",meithod = RequestMetho ...
- SpringMVC后台接收list类型的数据的实现方式
一.背景 最近在做一些东西的时候,遇到一个需要Springmvc后台接收list类型数据的需求,几经辗转才完美解决了这个问题,今天记下来方便以后使用,也分享给需要的小伙伴们~ 二.实现方式 1.实现方 ...
- GridView的七种数据绑定列的类型
1.BoundField 用于显示普通文本,是默认的数据绑定列的类型,一般自动生成的列就是该类型,需要注意是DataFormatString属性,该属性可以设置显示的格式,常见格式有:{0:C} 设置 ...
- 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
- JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件
一.Array数组 1.数组初始化(Array属于对象类型) /*关于数组的初始化*/ //1.创建 Array 对象--方法1: var arr1=[]; arr1[0]='aa';//给数组元素赋 ...
- C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数
一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor ...
随机推荐
- x264 编码数配置
记录项目中用到一组x264快速编码参数配置,具体如下: param->i_frame_reference = 1; param->i_scenecut_threshold = 0; par ...
- 从头认识java-15.7 Map(6)-介绍HashMap的工作原理-装载因子与性能
这一章节我们通过讨论装载因子与性能,再来介绍HashMap的工作原理. 1.什么是装载因子?他有什么作用? 以下的代码就是装载因子 /** * The load factor used when no ...
- 构建基于Javascript的移动web CMS——Hello,World
在一篇构建基于Javascript的移动web CMS入门--简单介绍中简单的介绍了关于墨颀CMS的一些原理,其极框架组成.于是開始接着应该说明一下这个CMS是怎样一步步搭建起来. RequireJS ...
- initializer_list、初始化列表、列表初始化
什么是列表初始化 使用一个花括号来初始化变量,表现形式如下: std::vector<int>a{1,2,3,4,5}; 或者 std::vector<int>a = {1,2 ...
- 为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs
为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs
- Linux驱动经典面试题目
1. linux驱动分类 2. 信号量与自旋锁 3. platform总线设备及总线设备怎样编写 4. kmalloc和vmalloc的差别 5. module_init的级别 6. 加入 ...
- n&(n-1)的妙用
今天无聊拿起<编程之美>看了下,发现原来n&(n-1)还有很多妙用.n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进 ...
- 开源安卓Android流媒体音视频播放器实现声音自动停止、恢复、一键静音功能源码
本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放 ...
- EasyDarwin开源团队招募开发组成员
EasyDarwin开源流媒体服务器项目招募开发组成员,共同更新和维护EasyDarwin流媒体服务器,决策EasyDarwin后续开发方向: 加入要求: 1.对开源流媒体项目有浓厚兴趣: 2.有一定 ...
- spring 过滤器简介
spring 过滤器简介 过滤器放在容器结构的什么位置 过滤器放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个Servlet.一个Jsp页面,甚至是一个HTML页面)之前截获进入的请 ...