参数绑定
首先准备两个javaBean
UserBean
package com.springmvc.vo;
import java.util.*;
public class UserBean {
//用户id
private Integer userID;
//用户名
private String userName;
//用户密码
private String password;
private List<String> list = new ArrayList<>();
private Set<SetTestBean> set = new HashSet<>();
private Map<String, String> map = new HashMap<>();
public UserBean() {
set.add(new SetTestBean());
set.add(new SetTestBean());
}
public Integer getUserID() {
return userID;
}
public void setUserID(Integer userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getpassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Set<SetTestBean> getSet() {
return set;
}
public void setSet(Set<SetTestBean> set) {
this.set = set;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return "UserBean{" +
"userID=" + userID +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
", list=" + list +
", set=" + set +
", map=" + map +
'}';
}
}
SetTestBean
package com.springmvc.vo;
public class SetTestBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "SetTestBean{" +
"name='" + name + '\'' +
'}';
}
}
各种数据类型绑定代码
package com.springmvc.controller;
import com.springmvc.vo.UserBean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Controller
public class ParamsController {
/**
* 基本本数据类型绑定
* URL:http://localhost:8080/springmvc01/test01?age=参数&money=参数
* 不传参数:报错:Optional int parameter 'age' is present but cannot be translated into a null value
* due to being declared as a primitive type. Consider declaring it as object wrapper for the
* corresponding primitive type (大概意思就是不能把基本类型转换成null)
* 传递参数:年龄:(你传递的参数) 存款:(你传递的参数)
* @param age 年龄
* @param money 存款
*/
@RequestMapping("test01")
public void test01(int age, double money){
//基本数据类型在访问时如果没有传递参数就会返回一个null,因为基本数据类型接收不了null所以就会报错
System.out.println("年龄:"+age+" 存款:"+money);
}
/**
* 解决基本数据类型不传参数报错问题可以通过@RequestParam(defaultValue="??")给它设置一个默认值
* URL:http://localhost:8080/springmvc01/test02?age=参数&money=参数
* 不传参数:年龄:10 存款:100 传递参数:年龄:(你传递的参数) 存款:(你传递的参数)
* @param age 年龄
* @param money 存款
*
* 设置别名
* @RequestParam(defaultValue = "10" name="别名")
* URL:http://localhost:8080/springmvc01/test02?别名=参数&别名=参数
* @RequestMapping("test02")
* public void test02(@RequestParam(defaultValue = "10" name="别名") int age, @RequestParam(defaultValue = "100" name="别名) double money){
* //基本数据类型在访问时如果没有传递参数就会返回一个null,因为基本数据类型接收不了null所以就会报错
* System.out.println("年龄:"+age+" 存款:"+money);
* }
*/
@RequestMapping("test02")
public void test02(@RequestParam(defaultValue = "10") int age, @RequestParam(defaultValue = "100") double money){
//基本数据类型在访问时如果没有传递参数就会返回一个null,因为基本数据类型接收不了null所以就会报错
System.out.println("年龄:"+age+" 存款:"+money);
}
/**
* 包装类型绑定
* URL:http://localhost:8080/springmvc01/test03?age=参数&money=参数
* 不传参数:年龄:null 存款:null 传递参数:年龄:(你传递的参数) 存款:(你传递的参数)
* @param age 年龄
* @param money 存款
*/
@RequestMapping("test03")
public void test03(Integer age, Double money){
System.out.println("年龄:"+age+" 存款:"+money);
}
/**
* String类型绑定
* URL:http://localhost:8080/springmvc01/test04?name=参数&password=参数
* 不传参数:姓名:null 存密码款:null 传递参数:姓名:(你传递的参数) 存密码款:(你传递的参数)
* @param name 姓名
* @param password 存密码款
*/
@RequestMapping("test04")
public void test04(String name,String password){
System.out.println("姓名:"+name+" 存款密码:"+password);
}
/**
* 数组类型绑定
* URL:http://localhost:8080/springmvc01/test05?ages=参数&ages=参数&ages=参数
* 不传参数:NullPointerException 传递参数:[你传递的参数,你传递的参数,你传递的参数]
* @param ages
*/
@RequestMapping("test05")
public void test05(String[] ages){
String add = "[";
for (String age:ages) {
if(age.equals(ages[ages.length-1])){
add+=age;
}else{
add+=age+",";
}
}
System.out.println(add+"]");
}
/**
* javaBean数据类型绑定
* URL:http://localhost:8080/springmvc01/test06?userName=参数&password=参数
* 不传参数:UserBean{userID=null, userName='null', password='null', list=[], set=[], map={}}
* 传递参数:UserBean{userID=你传递的参数, userName='你传递的参数', password='你传递的参数', list=[], set=[], map={}}
* @param userBean javaBean实例
*/
@RequestMapping("test06")
public void test06(UserBean userBean){
System.out.println(userBean.toString());
}
/**
* List数据绑定
* URL:http://localhost:8080/springmvc01/index.jsp(要提交数据的页面)
* http://localhost:8080/springmvc01/test07?list[0]=参数&list[1]=参数
* 表单提交数据:
* <form action="test07" method="get">
* <input name="list[0]" value="北京"/>
* <input name="list[1]" value="上海"/>
* <button type="submit">提交</button>
* </form>
* 传递参数:UserBean{userID=null, userName='null', password='null', list=[你传递的参数, 你传递的参数], set=[], map={}}
* @param userBean
*/
@RequestMapping("test07")
public void test07(UserBean userBean){
System.out.println(userBean.toString());
}
/**
* Map类型绑定
* URL:http://localhost:8080/springmvc01/index.jsp(要提交数据的页面)
* http://localhost:8080/springmvc01/test08?map['键']=值&map['键']=值
* 表单提交数据:
* <form action="test08" method="get">
* <input name="map['键']" value="值"/>
* <input name="map['键']" value="值"/>
* <button type="submit">提交</button>
* </form>
* 传递参数:UserBean{userID=null, userName='null', password='null', list=[], set=[],
* map={chinese=80, mathematics=50}}
* @param userBean
*/
@RequestMapping("test08")
public void test08(UserBean userBean){
System.out.println(userBean.toString());
}
/**
* Set数据绑定
* URL:http://localhost:8080/springmvc01/index.jsp(要提交数据的页面)
* http://localhost:8080/springmvc01/test09?set[0].name=参数&set[1].name=参数
* set数据绑定 需要实现在set中add相对应的模型数量(否则报错)
* public UserBean() {
* set.add(new SetTestBean());
* set.add(new SetTestBean());
* }
* 表单提交:
* <form action="test09" method="get">
* <input name="set[0].name(set中数据类型的字段名)" value="参数" />
* <input name="set[1].name" value="参数"/>
* <button type="submit">提交</button>
* </form>
* 传递参数:UserBean{userID=null, userName='null', password='null',
* list=[], set=[SetTestBean{name='张三'}, SetTestBean{name='李四'}], map={}}
* @param userBean
*/
@RequestMapping("test09")
public void test09(UserBean userBean){
System.out.println(userBean.toString());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。