RestFul 风格
使用RESTful操作资源 :可以通过不同的请求方式来实现不同的效果!如下:请求地址一样,但是功能可以不同!
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 删除,DELETE
步骤:
-
新建一个类 RestFulController
@Controller public class restfulcontroller { }
-
RequestMapping默认是以get方式提交,但可以设置,同时也可以选择不同的Mapping
设置如:
//映射访问路径,必须是POST请求 @RequestMapping(value = "/hello",method = {RequestMethod.POST}) public String index2(Model model){ model.addAttribute("msg", "hello!"); return "test"; }
可设置的Mapping有:
@GetMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping
-
在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上
-
参考案例如下
package com.yang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class restfulcontroller {
//映射访问路径
@GetMapping("/commit/{a}/{b}")
public String index(@PathVariable int a, @PathVariable String b, Model model){
String result = a + b;
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", "结果1:"+result);
//返回视图位置
return "test";
}
//映射访问路径
@PostMapping("/commit/{a}/{b}")
public String index2(@PathVariable int a, @PathVariable String b, Model model){
String result = a + b;
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", "结果2:"+result);
//返回视图位置
return "test";
}
}
好处:相同的路径下,不同的请求方式可拿到不同的内容