问号(?)传参和路径传参的区别
- 问号传参
- 需要使用问号来拼接参数,在接受方,使用request.getParameter(“name”)来获取问号所传递过来的值,如果数据类型不为String,拿到数据后还需要手动转换。可以传递多个值,如果使用多个值,使用&来拼接,不会改变路径级别
<a href="/empl/getEmplById?eid=${empl.eid}">update</a>
- 路径传参,使用路径符号来传递参数,优点,可以不用做类型转换来直接获取其值。
- 路径传参也可以使用统配规则,如果同时统配和具体的url都满足,则以最精确的url来处理该请求。
<a href="/empl/deleteEmplById/${empl.eid}">delete</a>
//后端方法调用
//调用时,需要在注解的后面加上/,并且用{}将参数包裹
//在参数列表中添加@PathVariable注解
@GetMapping("/deleteEmplById/{eid}") //不需要$符号,只需要{}包裹,用/分割
public String deleteEmplById(@PathVariable int eid){
boolean f=emplService.deleteEmplById(eid);
if (f){
return "redirect:/empl/getAllEmpls"; //跳转到主页面
}else {
return ""; //加载当前页面
}
}
web项目使用控制器的注解
-
RequestMapping
- 可以通过method来区分不同的请求方式
- @RequestMapping(value = “/updateEmp”, method = RequestMethod.POST)代表处理post请求
- @RequestMapping(value = “/updateEmp”, method = RequestMethod.GET)代表处理get请求
GETMapping,可以简化代码,专门用来处理get请求(4.3以后的Spring版本可用)
PostMapping,可以简化代码,专门用来处理post请求(4.3以后的Spring版本可用)
PathVariable路径传参的注解,可以实现路径传参。