SpringMVC之RequestParam详解

定义与作用

此注解用于从请求正文中获取请求参数,给控制器形参赋值。如果控制器方法形参与请求正文中的参数名一致时,就无需使用该注解。在spring2.5之后出现。
当请求中没有参数时,RequestParam注解还能为该形参提供一个默认值。

//只能作用于方法形参上。
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {

	//参数名,如果方法形参与请求传递过来的参数名不一致时,就要使用该属性进行参数绑定,该属性的值要与要绑定的请求参数名一致。
	@AliasFor("name")
	String value() default "";

	//与value属性互为别名。作用一样
	@AliasFor("value")
	String name() default "";

	/**
	 * 该参数是否必须,如果true的话,当请求中没有传递该参数就报错。
	 */
	boolean required() default true;

	/**
	 *默认值,当获取的不到请求中的该参数时就提供一个默认值。
	 */
	String defaultValue() default ValueConstants.DEFAULT_NONE;

}

@Controller
public class RequestParamController {

    @RequestMapping("testRequestParam1")
    public String testRequestParam1(String name,String value){
        System.out.println("name = " + name);
        System.out.println("value = " + value);
        return "RequsetParamDemo";
    }

    @RequestMapping("testRequestParam2")
    public String testRequestParam2(User user){
        System.out.println("user = " + user);
        return "RequsetParamDemo";
    }


}

testRequestParam1结果:
在这里插入图片描述
在这里插入图片描述
因为请求参数与控制器形参一样,所以能够进行正常的参数绑定。
如果请求参数与控制器形参一样,不一样。
在这里插入图片描述
在这里插入图片描述
参数绑定失败。
此时就要使用RequestParam注解。
在这里插入图片描述
在这里插入图片描述
绑定成功。 这是RequestParam主要功能。

如果形参时实体类,或者不是基本类型及其包装类以及string的话,RequestParam的绑定就没有用处。要使用其他方法或者遵循springmvc约定。

使用boolean required() default true;

该属性用于标志该参数是否必须,如果为true,并且请求中没有找到该参数进行绑定就会报400错误。默认为true。
在这里插入图片描述
少了value1参数。
改为false。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请求成功,但是为null值,因为没有绑定到。

String defaultValue() default ValueConstants.DEFAULT_NONE;

当没有绑定到参数时,提供一个默认值。

@RequestMapping("testRequestParam3")
    public String testRequestParam3( @RequestParam(name = "page",defaultValue = "1") Integer page){
        System.out.println("page = " + page);
        return "RequsetParamDemo";
    }

请求不提供page参数。
在这里插入图片描述
在这里插入图片描述
使用默认值1

请求添加page参数
在这里插入图片描述
在这里插入图片描述
就使用请求传递的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值