码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC之@Request

时间:2017-09-27 13:20:00      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:ping   strong   type   解决方法   template   produce   传值   user   content   

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

@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”。

springMVC之@Request

标签:ping   strong   type   解决方法   template   produce   传值   user   content   

原文地址:http://www.cnblogs.com/antime/p/7600748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!