style="text-indent:2em;">大家好,今天来为大家分享requestparam可以省略属性名的是的一些知识点,和不建议用requestparam注解的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
本文目录
postman报文格式有哪些
参数中有基本数据类型还有list集合类型
publicStringaddUserRole(@RequestParam("userId")LonguserId,
@RequestBodyList<Long>roleIdList)
2.参数中有基本数据类型,还有Map<Long,List<Long>>这种类型
addRolePermission(@RequestParam("roleId")LongroleId,
@RequestBodyMap<Long,List<Long>>metaMap)
spring实现多参数入参方式有几种
1.通过@PathVariable、@RequestParam注解接收参数
2.通过@RequestBody注解接收参数
3.不使用任何注解,直接使用参数或者实体类接收参数
requestparam可以省略属性名的是
当注解@RequestMapping的value是其唯一属性时,可以省略属性名
springmvc中@PathVariable和@RequestParam的区别
1、@PathVariable
当使用@RequestMappingURItemplate样式映射时,即someUrl/{paramId},这时的paramId可通过@Pathvariable注解绑定它传过来的值到方法的参数上。
示例代码:
@Controller
@RequestMapping("/owners/{ownerId}")
publicclassRelativePathUriTemplateController{
@RequestMapping("/pets/{petId}")
publicvoidfindPet(@PathVariableStringownerId,@PathVariableStringpetId,Modelmodel){
//implementationomitted
}
}
上面代码把URItemplate中变量ownerId的值和petId的值,绑定到方法的参数上。若方法参数名称和需要绑定的uritemplate中变量名称不一致,需要在@PathVariable("name")指定uritemplate中的名称。
2、@RequestHeader、@CookieValue
@RequestHeader注解,可以把Request请求header部分的值绑定到方法的参数上。
示例代码:
这是一个Request的header部分:
Hostlocalhost:8080
Accepttext/html,application/xhtml+xml,application/xml;q=0.9
Accept-Languagefr,en-gb;q=0.7,en;q=0.3
Accept-Encodinggzip,deflate
Accept-CharsetISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive300
@RequestMapping("/displayHeaderInfo.do")
publicvoiddisplayHeaderInfo(@RequestHeader("Accept-Encoding")Stringencoding,
@RequestHeader("Keep-Alive")longkeepAlive){
}
上面的代码,把requestheader部分的Accept-Encoding的值,绑定到参数encoding上了,Keep-Aliveheader的值绑定到参数keepAlive上。
@CookieValue可以把Requestheader中关于cookie的值绑定到方法的参数上。
例如有如下Cookie值:
JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84
参数绑定的代码:
@RequestMapping("/displayHeaderInfo.do")
publicvoiddisplayHeaderInfo(@CookieValue("JSESSIONID")Stringcookie){
}
即把JSESSIONID的值绑定到参数cookie上。
3、@RequestParam,@RequestBody
@RequestParam
A)常用来处理简单类型的绑定,通过Request.getParameter()获取的String可直接转换为简单类型的情况(String-->简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get方式中queryString的值,也可以处理post方式中bodydata的值;
B)用来处理Content-Type:为application/x-www-form-urlencoded编码的内容,提交方式GET、POST;
C)该注解有两个属性:value、required;value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
示例代码:
@Controller
@RequestMapping("/pets")
@SessionAttributes("pet")
publicclassEditPetForm{
@RequestMapping(method=RequestMethod.GET)
publicStringsetupForm(@RequestParam("petId")intpetId,ModelMapmodel){
Petpet=this.clinic.loadPet(petId);
model.addAttribute("pet",pet);
return"petForm";
}
@RequestBody
该注解常用来处理Content-Type:不是application/x-www-form-urlencoded编码的内容,例如application/json,application/xml等;
它是通过使用HandlerAdapter配置的HttpMessageConverters来解析postdatabody,然后绑定到相应的bean上的。
因为配置有FormHttpMessageConverter,所以也可以用来处理application/x-www-form-urlencoded的内容,处理完的结果放在一个MultiValueMap<String,String>里,这种情况在某些特殊需求下使用,详情查看FormHttpMessageConverterapi;
关于requestparam可以省略属性名的是,不建议用requestparam注解的介绍到此结束,希望对大家有所帮助。