使用注解@RequestParam指定要获取参数的名称
注:加上这个注解后客户端就必须要传入这个指定名称的参数,否则就会报错
@RequestMapping("/m1") public String method1(@RequestParam("name")String username) { return username; }2.当参数有多个时,可将它们封装成一个对象
注:对象的属性名必须与参数名称对应,即参数名为name,那么必须要有一个名为name的属性才能将它获取
@RequestMapping("/m2") public User method2(User user) { return user; }3.若传入的多个参数的名称相同,则使用数组或集合接收
@RequestMapping("/m3") public String[] method3(@RequestParam("hobby")String[] hobbys) { return hobbys; }
@RequestMapping("/m4") public ArrayList二、Rest请求method4(@RequestParam("num")ArrayList nums) { return nums; }
虽然请求路径都为“/user”,但若请求方式不同,则执行的方法也不同
@GetMapping("/user") public String method1() { return "获取用户"; } @PostMapping("/user") public String method2() { return "保存用户"; }开启表单的隐藏方法
需先开启一个过滤器,这个过滤器会拦截所有请求,如果是post请求且“_method”参数的值为“delete”、“put”、“patch”时,过滤器会生成一个request的包装类并重写里面的getMethod方法,然后放行这个request的包装对象。
spring: mvc: hiddenmethod: filter: enabled: true
获取路径变量
@GetMapping("/p1/{v1}/p2/{v2}") public String method5(@PathVariable("v1")String v1, @PathVariable("v2")String v2, String v3) { return "v1 = " + v1 + "; v2 = " + v2 + "; v3 = " + v3; }
路径变量可以与参数混合使用
获取cookie@GetMapping("/getcookie") public void method6(HttpServletResponse res, HttpServletRequest req) throws IOException { cookie cookie = new cookie("cookie1","hello"); res.addcookie(cookie); res.sendRedirect(req.getContextPath() + "/getcookie2"); } @GetMapping("/getcookie2") public String method7(@cookievalue("cookie1")String val) { // 获取cookie的值 return val; } @GetMapping("/getcookie3") public String method8(@cookievalue("cookie1")cookie val) { // 获取整个cookie return val.getValue(); }获取请求头
@GetMapping("/host") public String method9(@RequestHeader("Host")String host) { return host; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)