@RequestMapping和@RequestParam和@PathVariable
@RequestMapping注解
@RequestMapping
是一个用来处理请求地址映射的注解,可用于类或方法上用于
类
上,表示类中的所有响应请求的方法都是以该地址作为父路径
用于
方法
上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法
// 请求地址 http://localhost:8080/a/b
@RequestMapping(value = "/a")
public class Index {
// 用于方法上,必须有
@RequestMapping(value = "/b")
public String idx() {
return "HelloWorld";
}
}
则访问路径为http://localhost:8080/a/b,访问该路径就会跳转到HelloWorld页面。
@RequestParam注解
@RequestParam:
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
语法:
@RequestParam(value="参数名",required="true/false",defaultValue="")
value:
参数名
required:
是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:
默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
// 请求地址 http://localhost:8080/search?keywords=张三
public class search {
// 用于方法上,必须有
@RequestMapping(value = "/search")
public String idx(@RequestParam("keywords") String keywords) {
return keywords;
}
}
// 请求地址 http://localhost:8080/search
public class search {
@RequestMapping(value = "/search",required=false,defaultValue="李四")
public String idx(@RequestParam("keywords") String keywords) {
return keywords;
}
}
@PathVariable注解
@PathVariable:接收请求路径中占位符的值
通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中
@GetMapping("/categories/{cid}/books")
public List<Book> listByCategory(@PathVariable("cid") int cid) throws Exception {
if (0 != cid) {
return bookService.listByCategory(cid);
} else {
return list();
}
}