Spring MVC怎么获取request的请求参数

1. 通过@RequestParam绑定请求参数

        使用@RequestParam绑定请求参数的值到Controller的方法入参中。

	/**
	 * 方式一,通过@RequestParam绑定请求参数
	 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say此URL的GET请求
	 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析
	 *    通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例,
	 *    得到实际的物理视图是/jsp/say.jsp
	 * @param msg URL中传递的请求参数
	 * @return
	 */
	@RequestMapping(value="say",method=RequestMethod.GET)
	public ModelAndView  say(@RequestParam("msg") String msg){
		//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的
		return new ModelAndView("say", "msg", msg);
	}

2.通过RequestContextHolder上下文获取request对象

      大部分情况下,这种方式是有效的!当请求为multipart类型的请求的时候,如文件上传,form表单的enctype类型为"multipart/form-data",这种情况下,RequestHolder.getRequest().getParameter()是得不到参数值的!!因为通过RequestHolder.getRequest()获取到的request对象org.apache.catalina.connector.RequestFacade的实例

      不推荐使用这种方式,解决方案:直接将HttpServletRequest作为spring mvc的方法入参

	/**
	 * 方式二,通过RequestContextHolder上下文获取request对象
	 *        不推荐使用这种方式!!
	 *        当请求为multipart类型的请求的时候,如文件上传,form表单的enctype类型为"multipart/form-data",
	 *        这种情况下,RequestHolder.getRequest().getParameter()是得不到参数值的!!
	 *        因为通过RequestHolder.getRequest()获取到的request对象是org.apache.catalina.connector.RequestFacade的实例
	 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say2此URL的GET请求
	 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析
	 *    通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例,
	 *    得到实际的物理视图是/jsp/say.jsp
	 * @return
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值