SpringMVC Redreict 请求的问题

本文探讨了在SpringMVC中使用RESTful规范时遇到的redirect循环重定向问题。通过分析发现,SpringMVC对不同HTTP请求方法的处理方式导致了这一问题。文章提供了临时解决方案,包括调整URL和请求方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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";
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值