@RequestMapping详解
属性:
1、value:用于指定请求的URL,它和path属性的作用是一样的。
@AliasFor("path")
String[] value() default {
};
@AliasFor("value")
String[] path() default {
};
2、method:指接受到的请求方式。
RequestMethod[] method() default {
};
3、params:用于指定限制请求参数的条件,它支持简单的表达式,要求请求参数的key和value必须和配置中的一样的。例如:
params={
"acccountName"},表示请求参数必须有accountName
params={
"money!100"},表示请求参数中money不能是100。
@RequestMapping(value = "/testRequestMapping",params = {
"username"})
4、headers:发送的请求中必须包含请求头。
以上四个属性指要出现两个以上,就是与关系。
请求参数的绑定
1. 请求参数的绑定说明
1.1 绑定机制
表单提交的数据都是k=v格式的,比如:username=haha&password=123
SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
要求:提交表单的name和参数的名称是相同的。比如:在方法的映射中参数为username,那么在消息请求中必须为一个username的k-v传入
@RequestMapping(value = "/testRequestMapping",params = {
"username"})
1.2 支持的数据类型
基本数据类型和字符串类型
实体类型(JavaBean)
集合数据类型(List、Map集合等)
2. 基本数据类型和字符串类型
提交表单的name和参数的名称是相同的
区分大小写
3. 实体类型(Java Bean)
提交表单的name和JavaBean中的属性名称需要一致
如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写出:对象.属性 例如:address.name
4. 给集合属性数据封装
Jsp页面编写方式:list[0].属性
5. 请求参数中文乱码的解决
在web.xml中配置Spring提供的过滤器类
现在考虑两个类Account和User,我想要通过表单提交参数,从而将控制器中的参数绑定。
public class Account implements Serializable {
private String username;
private String password;
private Double money;
private User user