好处: 安全

通过请求方式判断执行的方法


/*在Springmvc中可以使用@PathVariable注解,
让方法参数的值对应绑定到一个Url模板变量,
则url中传参不能用add?a=1&b=2的方式,
只能用add/1/2方式
*/
@Controller
public class HelloController {
//以post方式去请求,不可以在url中传参
@PostMapping("/hello/{a}/{b}")
public String hello(@PathVariable String a, @PathVariable String b,Model model){
String res=a+b;
model.addAttribute("restful","结果为:PostMapping:"+res);
return "hello";//返回字符串是视图的名字,会被解析器解析
}
//以get方式去请求,可以在url中传参
@GetMapping ("/hello/{a}/{b}")
public String hello1(@PathVariable String a, @PathVariable String b,Model model){
String res=a+b;
model.addAttribute("restful","结果为:GetMapping:"+res);
return "hello";//返回字符串是视图的名字,会被解析器解析
}
}
因在url赋值用get方式,所以走@GetMapping
或在后台写死参数,则走@PostMapping
地址栏一样,产生不一样结果

RequestMapping可在注解内部指定method
地址可以用path或者value

案例:
test.jsp下代码为:
<body>
<form action="/hello/RestFul-/PostMapping" method="post">
<input type="submit" value="PostMapping">
</form>
<form action="/hello/RestFul-/GetMapping" method="get">
<input type="submit" value="GetMapping">
</form>
</body>
hello.jsp下代码为:
<body>
${restful}
</body>



总结:为了避免报错,直接给默认值,不难发现,在同一个路径下,产生了两种方法。
本文介绍了在SpringMVC中如何利用@PathVariable注解进行URL参数绑定,分别展示了POST和GET方式在处理路径变量时的不同。通过示例代码解释了在同一个URL路径下,根据请求方法(POST或GET)如何实现不同功能,并强调了使用GET方式在URL中传递参数的特性。同时,提供了测试页面的HTML代码,帮助理解请求方式对结果的影响。
1618

被折叠的 条评论
为什么被折叠?



