SpringMVC Redreict 请求的问题
学习笔记
- 问题:代码重构时,对接口的规范采用RESTful规范,在使用redirect:url 转发至其它Controller时出错,出现循环的重定向
- 原因: SpringMVC在后台处理代码的过程中,对于GET和POST请求的转发采用GET的方式,而对于PUT和DELETE请求的转发则是采用原有的请求方式,即PUT请求转发后仍会是用PUT的方式来处理
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/users", method = RequestMethod.GET)
@ResponseBody
public Users findAll() {
return userService.findAll();
}
@RequestMapping(value = "/users/{username}", method = RequestMethod.PUT)
public String updateUser(@RequestBody User user) {
userService.updateUser(user);
return "redirect:/users";
}
}
- 解决方法 :
暂无完好的解决方法,仅做记录。 - 临时方案:修改url,并修改可访问findAll()的请求RESTful
@RequestMapping(value = "/users", method = { RequestMethod.GET, RequestMethod.PUT})
@ResponseBody
public Users findAll() {
return userService.findAll();
}
@RequestMapping(value = "/user/{username}", method = RequestMethod.PUT)
public String updateUser(@RequestBody User user) {
userService.updateUser(user);
return "redirect:/users";
}
本文探讨了在SpringMVC中使用RESTful规范时遇到的redirect循环重定向问题。通过分析发现,SpringMVC对不同HTTP请求方法的处理方式导致了这一问题。文章提供了临时解决方案,包括调整URL和请求方法。
2025

被折叠的 条评论
为什么被折叠?



