springMVC之@Request

这段时间有了新的动力,所以开始了我的博客之旅。先从参数绑定开始我的随笔吧。

@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。(http路径上就是这样,value中的路径)

RequestMapping注解有六个属性:

1、 value, method属性;

value:     指定请求的实际地址,指定的地址可以是URI Template 模式;

value的uri值为以下三类:

A) 可以指定为普通的具体值;(value="/test")

B)  可以指定为含有某变量的一类值(value="/tmp/{tmp}")

C) 可以指定为含正则表达式的一类值(/web/{UserId:[a-z-]})

method:  指定请求的method类型, GET、POST、PUT、DELETE等;

(method=RequestMethod.GET\RequestMethod.POST)

2、 consumes,produces;

consumes: 指定处理请求的提交内容类型(Content-Type),

例如onsumes="application/json"、"text/html";方法仅处理request Content-Type为“application/json”类型的请求。

produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; produces="application/json"

3、 params,headers;

params: 指定request中必须包含某些参数值是,才让该方法处理。例如:(params="myParam=start")

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。(headers="www.baidu.com/")

在SpringMVC后台控制层获取参数的方式主要有两种:

一、request.getParameter("name");

二、是用注解@RequestParam直接获取;

这次主要说明注解 :

1、通过@RequestParam配置 :value="XX"

// 下面的对传入参数指定为test,如果传入参数不传test参数名,会报错

@RequestParam(value="test") String test

错误信息: 
HTTP Status 400 - Required String parameter ‘test‘ is not present

2、通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传

// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有

@RequestParam(value="test",required=false) String test

3、如果用@RequestParam注解的参数类型是int,同时required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int。

解决方法: 
    “Consider declaring it as object wrapper for the corresponding primitive type.”。建议使用包装类型代替基本类型,如使用“Integer”代替“int”。

时间: 2024-10-08 22:27:25

springMVC之@Request的相关文章

Struts2,springMVC获取request和response

springMVC获取request和response1:在BaseController中加入: protected HttpServletRequest request;   protected HttpServletResponse response;   protected HttpSession session; @ModelAttribute   public void setReqAndRes(HttpServletRequest request, HttpServletRespon

SpringMVC从Request域中获取数据

SpringMVC从Request域中获取数据的三种方式 SpringMVC环境自行搭建, 约定存在如下目录和文件:/WEB-INF/pages/success.jsp 方式一:传入Model对象 前端界面 <a href="${pageContext.request.ContextPath}/项目名/getRequestValue">获取request域中的值</a>${value} 后台代码 @RequestMapping("/getRequest

[springMVC - 1A] - Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException

一月 14, 2016 1:30:07 下午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springMVC] in context with path [/ExceptionManageSystem] threw exception [Request processing failed; nested exception is org.apache.ibatis.b

springMVC 获取request 处理全局session业务

<a target=_blank href="http://blog.csdn.net/is_zhoufeng/article/details/7559756" style="color: rgb(0, 0, 0); text-decoration: none; font-family: 'Microsoft YaHei'; font-size: 20px; line-height: 30px; ">springMVC中得到request对象,sessi

关于springmvc时request的getReader()和getInputStream()只能调用一次的解决办法

最近准备在原有的SSM项目的基础上添加完善的日志分析,由于是APP的后台系统,之前在规划APP的时候,并没有在APP上做埋点的处理,而如果想要进行埋点处理的话,对于未能新升级的APP用户来说,就是去了意义,因为只要用户不升级,埋点就不能在他的APP中运行.所以,就考虑到了在后台的入口增加日志的监控. 想法总是简单,但是在实际实现的过程中却还是遇到了问题.由于APP基本都采用公参的加密校验,然后采用POST请求传递JSON数据.对于一般的请求分析,比如每个时间段的访问量,或者每个方法每个某块的统计

Springmvc获取request对象&amp;线程安全

概述:在使用Springmvc开发web系统时,经常要用到request对象来处理请求,比如获取客户端IP地址.请求的url.header中的属性(cookie.授权信息等).body中的数据等.由于Springmvc中的Controller.Service等都是单例的,因此就需要关注request对象是否是线程安全的:当有大量并发请求时,能否保证不同请求/线程中使用不同的request对象.(本文对request的讨论,同样适用于response对象.InputStream/Reader.Ou

开始学SpringMVC之Request方式

本文主要以一些简单的小例子,简述在SpringMVC开发过程中,经常用到的Request方面的内容,仅供学习分享使用,如有不足之处,还请指正. 概述 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST.如果要支持其他方式进行访问,则必须在表单中增加Hidden元素,然后再SpringMVC中过滤器进行拦截,再重新封装请求方式. Request常见访问方式 GET - 从指定的资源请求数据. POST - 向指定的资源提交要被处理的数据 GET方式 访问的特点: G

springMVC获取request和response

转载:http://blog.sina.com.cn/s/blog_7085382f0102v9jg.html 1.参数 例如: @RequestMapping("/test") @ResponseBody public void saveTest(HttpServletRequest req, HttpServletResponse resp){ } 这样的话如果要用ajax每次都要将response作为参数传递,不方便使用 2.加入监听器,然后再controller里面获取 (1)

springMVC中 request请求数据绑定到Controller入参 过程剖析

前言:Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众所周知,无论客户端传入的是什么类型的请求参数,最终都要以字节的形式传给服务端.而服务端通过Request的getParameter方法取到的参数也都是字符串形式的结果.所以,需要有一个把字符串形式的参数转换成服务端真正需要的类型的转换工具(基类:PropertyEditorSupport) 注:只有