一、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. 【HDOJ 5371】 Hotaru's problem

    [HDOJ 5371] Hotaru's problem Manacher算法+穷举/set Manacher算法一好文:http://blog.csdn.net/yzl_rex/article/de ...

  2. 1.excel如何让一列的数都乘以固定值

     让B列等于A列乘以39.37 1.我们先选中B列中要编辑的单元: 2.再在编辑栏中输入公式:=A2*39.37   (PS:*号即表示是×号) 3.公式输入后,按下快捷键:CTRL+回车:记住一定要 ...

  3. some cmds,tools and utils man

    NAME stdbuf - Run COMMAND, with modified buffering operations for its standard streams. SYNOPSIS std ...

  4. 6.6.1 F# 中函数调用的类型判断

    6.6.1 F# 中函数调用的类型判断 尽管,在 F# 中能够用尖括号指定类型參数值.与 C# 中的方式同样.但这样的方法非常少使用. 原因是,当编译器无法判断出全部的信息,须要程序猿的帮助时.我们仅 ...

  5. 【转载】How to develop your own Boot Loader【怎么样开发自己的bootloader】

    How to develop your own Boot Loader 怎么样开发自己的bootloader Table of content[目录] 1. Who may be interested ...

  6. Active Directory虚拟机搭建域控服务器环境

    前言 还是和上一章一样,痛苦过后还是记录下给后来人提供便利为妙. 虚拟机选择:建议Hyper-V或者VMware 系统选择:建议WIindows Server 2003及以上 我这里是使用VMware ...

  7. Vuex demo

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. jquery设置多个css样式

    $(selector).css({property:value, property:value, ...}) 实例: $("p").css({ "color": ...

  9. file descriptor 0 1 2 一切皆文件 stdout stderr stdin /dev/null 沉默是金 pipes

    $>emtry_or_create_a_file.f $ll>>append_a_file.f standard output input error $ls -l /usr/bin ...

  10. Win32对话框工程笔记

    Main.cpp #include <Windows.h> #include "resource.h" INT_PTR CALLBACK dialogProc(HWND ...