@[TOC]关于HiddenHttpMethodFilter使用时无效的解决方式
在今天进行使用的时候。突然发现我写的过滤器没有起到作用
首先简单介绍一下HiddenHttpMethodFilter
说到HiddenHttpMethodFilter
先说restful
13.1 开发风格是一种开发风格,遵从此风格开发软件,符合REST风格,则RESTFUL。
两个核心要求:
- 每个资源都有唯一的标识(URL)
- 不同的行为,使用对应的http-method
| 访问标识 | 资源 |
|---|---|
| http://localhost:8989/xxx/users | 所有用户 |
| http://localhost:8989/xxx/users/1 | 用户1 |
| http://localhost:8989/xxx/users/1/orders | 用户1的所有订单 |
| 请求方式 | 标识 | 意图 |
|---|---|---|
| GET | http://localhost:8989/xxx/users | 查询所有用户 |
| POST | http://localhost:8989/xxx/users | 在所有用户中增加一个 |
| PUT | http://localhost:8989/xxx/users | 在所有用户中修改一个 |
| DELETE | http://localhost:8989/xxx/users/1 | 删除用户1 |
| GET | http://localhost:8989/xxx/users/1 | 查询用户1 |
| GET | http://localhost:8989/xxx/users/1/orders | 查询用户1的所有订单 |
| POST | http://localhost:8989/xxx/users/1/orders | 在用户1的所有订单中增加一个 |
13.3 使用 13.3.1 定义Rest风格的 Controller
- **输出json:
@RequestMapping(value=“/users”,method = RequestMethod.GET)
等价
@GetMapping(“/users”)
@RestController
public class RestController {
@GetMapping("/users")
public List queryAllUsers(){
System.out.println("get");
List users = ....
return users;
}
@PostMapping("/users")
public String addUser(@RequestBody User user){
System.out.println("Post user :"+user);
return "{status:1}";
}
@PutMapping("/users")
public String updateUser(@RequestBody User user){
System.out.println("Put user" user:"+user);
return "{status:1}";
}
@GetMapping("/users/{id}")
public String queryOneUser(@PathVariable Integer id){//@PathVariable 接收路径中的值
System.out.println("Get user id:"+id);
return "{status:1}";
}
@DeleteMapping("/users/{id}")
public String deleteOneUser(@PathVariable Integer id){//@PathVariable 接收路径中的值
System.out.println("delete user id:"+id);
return "{status:1}";
}
}
13.3.2 Ajax请求
filter过滤器:
hiddenhttp org.springframework.web.filter.HiddenHttpMethodFilter hiddenhttp /*
在使用filtter进行过滤的时候,一定要注意的是:
type和name属性,type 防止被更改value的值
而name属性来确定当前的这个input标签是用来进行干什么的
form action="http://localhost:8080/springMVCWeb/user/test/1" method="post" >



