请求参数的绑定:即从客户端提交参数值给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方法