Spring MVC 学习笔记 六 Handler Method的可用参数

使用@requesMapping标注的处理函数包括的可选参数,除了HttpServletRequest, HttpServletResponse, HttpSession这些web应用中常见的参数及之前提到过的@PathVariable外,还可以包括以下可选的参数,其中大部分参数的顺序没有特殊要求的。

 

 

java.util.Locale

当前请求所属的区域设置。

 

java.io.InputStreamjava.io.Reader

用来读取request content,相当于  request.getInputStream()request.getReader();

 

java.io.OutputStreamjava.io.Writer

用来生成reponse content,相当于response.getOutputStream()response.getWriter()

 

java.security.Principal

当前认证了的用户

 

WebRequestNativeWebRequest

Spring request,response,sessionweb元素封装后的对象

 

java.util.Map  org.springframework.ui.Modelorg.springframework.ui.ModelMap

用来存放domain modelmap结构。

 

HttpEntity<?>

可用来读取http请求的header body内容,注意因为httpentity,@RequestBodyReader这三种类型的参数都是通过inputstram来读取httpbody的数据的,而inputstream流不能反复读取,因此这三种类型的参数不能放在一起使用。而且在没有设置content-type或没有设置相应的messageconverter的情况下,都会报错。

 

Command  form objects

通过spring databinding机制将request请求中的参数自动转换为对应的java bean实例。

 

ErrorsBindingResult

commandform objects值的校验结果。此参数必须紧跟在需校验的commandform object参数后面。因为databinding可以允许将输入参数和多个java bean 进行绑定(也就是说我们可以把输入request param转换成为多个java 对象)。

 

SessionStatus

Session的状态。当使用@SessionAttributes来标注请求需要session中对应的值时,在处理结束时,使用SessionStatus. setComplete()来将session设置为时效。

 

@RequestParam

request参数和handler method参数做绑定。例如

@RequestParam(value="username",defaultValue="winzip",required=false) String name

表示将request中的username参数和handler method中的name参数绑定,缺省值为”winzip”,request请求中可以不传递此参数

 

@RequestHeader

handler method中的参数与request header中的值绑定,例如

@RequestHeader(required=false,value="User-Agent") String ua

表示将header中的"User-Agent"ua这个入参绑定。

 

@RequestBody

handler method中的参数与request context body中的值绑定

例如

@RequestBody String u

表示将request body中的内容与u这个入参绑定。

 

@CookieValue

handler method中的参数与cookie中的值绑定

例如

@CookieValue(value="JSESSIONID",required=false) String jssionid

 

@ModelAttribute

handler method中的参数与对应的类型绑定,名称缺省为类名(首字母小写),如果ModelAttribute指定了值则以该值作为model attribute name

例如

@ModelAttribute("ooxx") User u

则在modelmap中创建了一个键值为ooxxmodel attribute

@ModelAttribute User u  User u

modelmap中创建了一个键值为usermodel attribute

你可能感兴趣的:(spring mvc)