SpringMVC学习之请求参数绑定

请求参数的绑定:即从客户端提交参数值给web端

首先说一下RequestMapping的使用
不仅可以注解方法,也可注解类。加入在类上添加注解:@RequestMapping(value="/params"),然后在某个方法上添加注解:@RequestMapping(“testParams”)。那么客户端的请求要使用这个方法的话,请求地址就必须是params/testParams,请求这个类中的任何一个方法都必须加上类上注解的路径,也即父目录
简单类型:
如用一个简单的超链接:

 <a href="params/testParams?username=hehe&passwod=123">请求参数绑定</a> -->

在方法中如何获取传来的username和password?

@RequestMapping("testParams")
	//请求传入的key和形参名要一致
	public String testParams(String username,String password){
		System.out.println("用户名:"+username);
		System.out.println("密码:"+password);
		System.out.println("执行了param");
		return "success";
	}

请求参数绑定到实体类中
实体类:Account

public class Account implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private String username;
	private String password;
	private double money;
	//后面添加set和get方法及重写toString方法

写一个jsp页面;

 <form action="params/saveAccount" method="post">
    	用户名:<input type="text" name="username" /><br>name值与实体类属性相对应 
    	密码:<input type="text" name="password" /><br>
    	金额:<input type="text" name="money" /><br>
    	<input type="submit" value="提交">
    </form>

方法:


    @RequestMapping("saveAccount")
	public String saveAccount(Account account){
		System.out.println(account);
		
		return "success";
	}

请求参数绑定,类中嵌套类
实体类包含类成员:Account包含User
public class Account implements Serializable{

private static final long serialVersionUID = 1L;

private String username;
private String password;
private double money;
private User user;
//后面添加set和get方法及重写toString方法

User类:

public class User implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private String uname;
	private Integer age;
	private Date date;
	//后面添加set和get方法及重写toString方法

jsp页面:

<form action="params/saveAccount" method="post">
    	用户名:<input type="text" name="username" /><br>name值与实体类属性相对应 
    	密码:<input type="text" name="password" /><br>
    	姓名:<input type="text" name="user.uname" /><br>在Account实体类中嵌有User实体类,
    	年龄:<input type="text" name="user.age" /><br>要给user属性赋值,那这里的name写account中user类型的属性名.属性
    	金额:<input type="text" name="money" /><br>
    	<input type="submit" value="提交">
    </form> 

请求的方法:
@RequestMapping(“saveAccount”)
public String saveAccount(Account account){
System.out.println(account);
return “success”;
}
请求参数绑定,类中包含List和Map

Account类:
public class Account implements Serializable{
	private static final long serialVersionUID = 1L;

	private String username;
	private String password;
	private double money;
	private List<User> list;
	private Map<String, User> map;
	//后面添加set和get方法及重写toString方法

jsp页面:

 <form action="params/saveAccount" method="post">
    	用户名:<input type="text" name="username" /><br><!-- name值与实体类属性相对应  -->
    	密码:<input type="text" name="password" /><br>
    	
    	用户姓名:<input type="text" name="list[0].uname" /><br><!-- 在Account实体类中嵌有List<user>, -->
    	用户年龄:<input type="text" name="list[0].age" /><br><!-- 要给list属性赋值,那这里的name写account中List类型的属性名[下标].属性 -->
    	
    	用户姓名:<input type="text" name="map['one'].uname" /><br><!-- 在Account实体类中嵌有Map, -->
    	用户年龄:<input type="text" name="map['one'].age" /><br><!--要给map属性赋值,那这里的name写account中Map<String,User>类型的属性名[key值].属性  -->
    	金额:<input type="text" name="money" /><br>
    	<input type="submit" value="提交">
    </form>

执行效果;
Account [username=zhangsan, password=123, money=2000.0, list=[User [uname=张三, age=22, date=null]], map={one=User [uname=李四, age=21, date=null]}]
注意:
实体类要实现序列化接口和set,get方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值