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参数
在这里插入图片描述
在这里插入图片描述
就使用请求传递的值。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Springmvc.xml是Spring MVC框架的配置文件,它定义了Spring MVC中各个部分的配置信息,包括控制器、视图解析器、拦截器、资源映射等。 下面是Springmvc.xml的详细解释: 1. 配置控制器 在Springmvc.xml中,可以通过配置bean来定义控制器,例如: ```xml <bean id="helloController" class="com.example.HelloController"/> ``` 这里配置了一个名为helloController的控制器,它的类为com.example.HelloController。 2. 配置视图解析器 Spring MVC框架使用视图解析器将控制器返回的逻辑视图名解析为具体的视图。在Springmvc.xml中,可以通过配置bean来定义视图解析器,例如: ```xml <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> ``` 这里配置了一个名为viewResolver的视图解析器,它使用InternalResourceViewResolver类来解析逻辑视图名。其中,prefix属性指定了视图文件的前缀,suffix属性指定了视图文件的后缀。 3. 配置拦截器 在Spring MVC框架中,拦截器用于拦截请求和响应,在请求到达控制器之前或者控制器返回响应之后执行一些操作。在Springmvc.xml中,可以通过配置bean来定义拦截器,例如: ```xml <bean id="myInterceptor" class="com.example.MyInterceptor"/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.example.MyInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 这里配置了一个名为myInterceptor的拦截器,它的类为com.example.MyInterceptor。接着,通过<mvc:interceptors>标签配置了一个拦截器链,将myInterceptor拦截器添加到了其中。其中,<mvc:mapping>标签指定了要拦截的请求路径。 4. 配置资源映射 在Spring MVC框架中,可以通过配置资源映射将静态资源文件映射到指定的URL上。在Springmvc.xml中,可以通过<mvc:resources>标签来配置资源映射,例如: ```xml <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/> ``` 这里配置了一个资源映射,将请求路径为/static/**的请求映射到/WEB-INF/static/目录下。 以上是Springmvc.xml的简要解释,它是Spring MVC框架的重要配置文件,通过它可以配置控制器、视图解析器、拦截器和资源映射等,实现Spring MVC框架的各项功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值