参考网址:https://blog.51cto.com/zero01/2085805
@RequestMapping注解
@RequestMapping 会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。
说人话就是:你可以把他想成是一个目录,这个RequestMapping相当于一个锚点,用于快速寻找一个方法的一个路径。可以让整个系统更有层次感,子父级关系更加清晰。
这个注解不仅可以用于方法上,还可以用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径,例如可以加个虚拟目录什么的。
代码示例:
@Controller
@RequestMapping("/test")
public class Test {
@RequestMapping("/test.do")
public void method(){
System.out.println("This is a test output");
}
}
此时,需要访问到该控制器中的method方法的话,就需要在访问网址后边加上 /test 这个虚拟目录,例如:
http://localhost:8090/test/test.do
常用属性:
项目中实战发现这样的语句最为常用:@RequestMapping(value = “/desktop/getXXX”, method = RequestMethod.GET)
1. value与path属性
这两个属性是一样的,用于指定HTTP请求资源(URI)的实际映射地址,当不指定具体的属性值时,默认是给该属性传递值,示例:
@Controller
@RequestMapping("/test")
public class Test {
@RequestMapping(value = "/value.do")
public void value(){
System.out.println("value");
}
@RequestMapping(path = "/path.do")
public void path(){
System.out.println("path");
}
@RequestMapping("/method.do")
public void method(){
System.out.println("method");
}
}
然后此时此刻,我们可以访问以下几个地址:
http://localhost:8090/test/value.do
http://localhost:8090/test/path.do
http://localhost:8090/test/method.do
2. consumes属性
这个属性指定了 需要处理的请求 所需要提交的 内容类型(Content-Type),例如application/json, text/html;等,示例:
@Controller
@RequestMapping("/test")
public class Test {
// 只处理application/json的请求
@RequestMapping(value = "json.do", consumes = "application/json")
public void json(){
System.out.println("application/json");
}
// 只处理text/html的请求
@RequestMapping(path = "/xml.do", consumes = "text/html")
public void xml() {
System.out.println("text/html");
}
}
@RequestParam
经过项目实战,发现这玩意就是指定请求参数有些什么的
@RequestParam(value = "username", defaultValue = "") String username,
@RequestParam(value = "companyID", defaultValue = "") String companyId