一、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数据绑定一(基本类型、数组和对象(简单对象、层级对象、多参数对象))的更多相关文章

  1. python实例编写(2)--等待,一组对象,层级元素,frame对象处理

    一.设置等待 #coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDri ...

  2. JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

    将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...

  3. springMVC数据绑定入门

    数据绑定是将用户输入绑定到领域模型的一种特性. @controller 注解使类生效 @RequestMapping(value="",meithod = RequestMetho ...

  4. SpringMVC后台接收list类型的数据的实现方式

    一.背景 最近在做一些东西的时候,遇到一个需要Springmvc后台接收list类型数据的需求,几经辗转才完美解决了这个问题,今天记下来方便以后使用,也分享给需要的小伙伴们~ 二.实现方式 1.实现方 ...

  5. GridView的七种数据绑定列的类型

    1.BoundField 用于显示普通文本,是默认的数据绑定列的类型,一般自动生成的列就是该类型,需要注意是DataFormatString属性,该属性可以设置显示的格式,常见格式有:{0:C} 设置 ...

  6. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  7. JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件

    一.Array数组 1.数组初始化(Array属于对象类型) /*关于数组的初始化*/ //1.创建 Array 对象--方法1: var arr1=[]; arr1[0]='aa';//给数组元素赋 ...

  8. C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数

    一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...

  9. 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。

    无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor ...

随机推荐

  1. x264 编码数配置

    记录项目中用到一组x264快速编码参数配置,具体如下: param->i_frame_reference = 1; param->i_scenecut_threshold = 0; par ...

  2. 从头认识java-15.7 Map(6)-介绍HashMap的工作原理-装载因子与性能

    这一章节我们通过讨论装载因子与性能,再来介绍HashMap的工作原理. 1.什么是装载因子?他有什么作用? 以下的代码就是装载因子 /** * The load factor used when no ...

  3. 构建基于Javascript的移动web CMS——Hello,World

    在一篇构建基于Javascript的移动web CMS入门--简单介绍中简单的介绍了关于墨颀CMS的一些原理,其极框架组成.于是開始接着应该说明一下这个CMS是怎样一步步搭建起来. RequireJS ...

  4. initializer_list、初始化列表、列表初始化

    什么是列表初始化 使用一个花括号来初始化变量,表现形式如下: std::vector<int>a{1,2,3,4,5}; 或者 std::vector<int>a = {1,2 ...

  5. 为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

    为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

  6. Linux驱动经典面试题目

    1.  linux驱动分类 2.  信号量与自旋锁 3.  platform总线设备及总线设备怎样编写 4.  kmalloc和vmalloc的差别 5.  module_init的级别 6.  加入 ...

  7. n&(n-1)的妙用

    今天无聊拿起<编程之美>看了下,发现原来n&(n-1)还有很多妙用.n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进 ...

  8. 开源安卓Android流媒体音视频播放器实现声音自动停止、恢复、一键静音功能源码

    本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放 ...

  9. EasyDarwin开源团队招募开发组成员

    EasyDarwin开源流媒体服务器项目招募开发组成员,共同更新和维护EasyDarwin流媒体服务器,决策EasyDarwin后续开发方向: 加入要求: 1.对开源流媒体项目有浓厚兴趣: 2.有一定 ...

  10. spring 过滤器简介

    spring 过滤器简介 过滤器放在容器结构的什么位置 过滤器放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个Servlet.一个Jsp页面,甚至是一个HTML页面)之前截获进入的请 ...