为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下spring boot 怎样通过RequestMapping的参数选择函数?

请教一下spring boot 怎样通过RequestMapping的参数选择函数?

呼啦一阵风 2019-09-02 08:08:44
spring boot 怎样通过RequestMapping的参数选择函数
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

下面一些例子来说明

使用@RequestParam绑定请求参数值

@RequestMapping(value="/method1") public String method1( @RequestParam(value="userName",required = false) String userName, @RequestParam("pwd") String pwd){ return "methodSignature"; }

@RequestParam的参数有以下三个:

使用数组或者List让@RequestParam接收多个同名参数

public String requestparam(@RequestParam(value="role") String roleArray)
public String requestparam(@RequestParam(value="role") List<String> roleList)

value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties[‘java.vm.version’]}”。
使用@CookieValue绑定请求中的Cookie值
@CookieValue的参数和@RequestParam一样

第二种绑定javax.servlet.http.Cookie类型参数
public String test2(@CookieValue(value="JSESSIONID", defaultValue="") Cookie sessionId)

第一种绑定String类型参数
public String test(@CookieValue(value="JSESSIONID", defaultValue="") String sessionId)

使用@RequestHeader绑定请求报文头的属性值

@RequestMapping(value="/method3") public String method3( @RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive){ return "methodSignature"; }

使用@PathVariabl获取路径中传递参数

@RequestMapping(value="/users/{userId}/topics/{topicId}") public ModelAndView helloWorld( @PathVariable String userId, @PathVariable Long topicId) { System.out.println(id); System.out.println(str); return new ModelAndView( " /helloWorld " ); }

如请求的URL为“控制器URL/users/123/topics/456”,则自动将URL中模板变量{userId}和{topicId}绑定到通 过@PathVariable注解的同名参数上,即入参后userId=123、topicId=456。代码在 PathVariableTypeController中


查看完整回答
反对 回复 2019-09-25
  • 2 回答
  • 0 关注
  • 600 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信