Springmvc注解
@RequestMapping
:Spring MVC 通过 @RequestMapping 注解将 URL 请求与业务⽅法进⾏映射,在 Handler 的类定义处
以及⽅法定义处都可以添加 @RequestMapping ,在类定义处添加,相当于客户端多了⼀层访问路径@Controller
:@Controller 在类定义处添加,将该类交个 IoC 容器来管理(结合 springmvc.xml 的⾃动扫描配置使⽤),同时使其成为⼀个控制器,可以接收客户端请求
如:
@Controller
@RequestMapping("/hello")
public class HelloHandler {
@RequestMapping("/index")
public String index(){
System.out.println("执行index方法");
return "index";
}
}
需要浏览器访问localhost:8080/hello/index
@RequestMapping
相关参数:
1、value指定 URL 请求的实际地址是@RequestMapping 默认值
2、method:指定请求的 method 类型,GET、POST、PUT、DELET
3、params:指定请求中必须包含某些参数,否则⽆法调⽤该⽅法
@Controller
@RequestMapping("/hello")
public class HelloHandler {
@RequestMapping(value = "/index",method = RequestMethod.GET,params = {"id=10","name"})
public String index(@RequestParam("id") Integer id ,@RequestParam("name") String string){
System.out.println(id);
System.out.println(string);
System.out.println("执行index方法");
return "index";
}
}
上述代码表示请求中方法必须为
GET
,必须包含name
和id
两个参数,同时id
的值必须是 10。
关于参数绑定,在形参列表中通过添加@RequestParam
注解完成 HTTP 请求参数与业务⽅法形参的映射
@RequestParam
表示将请求的参数 name 和 id 分别赋给了形参 string 和 id ,同时⾃动完成了数据类型转换,
将 “10” 转为了 int 类型的 10,再赋给 id,这些⼯作都是由HandlerAdapter
来完成的
Spring MVC 也⽀持 RESTful ⻛格的 URL。
传统类型:
http://localhost:8080/hello/index?name=zhangsan&id=10
REST:
http://localhost:8080/hello/index/zhangsan/10
@RequestMapping("/rest/{name}/{id}")
public String rest(@PathVariable("name") String name,@PathVariable("id") int
id){
System.out.println(name);
System.out.println(id);
return "index"; }
通过 @PathVariable
注解完成请求参数与形参的映射