SpringBoot中实现跳转的一些问题

本文详细阐述了在使用Spring Boot的@RestController注解时,如何导致请求跳转失败,通过将@Controller替换,解决了返回数据类型问题,并介绍了相关前端与后端交互的原理。

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

这是我今天实现跳转的后台代码

@RestController
public class requestController {

    @GetMapping("/requesttest")
    public String requesttest(HttpServletRequest request){
        request.setAttribute("msg","nmsl");
        request.setAttribute("code","112233");
        return "forward:/success";
    }
    @GetMapping("/success")
    public Map<String, Object> success(@RequestAttribute("msg") String msg,
                                       @RequestAttribute("code") String code,
                                       HttpServletRequest request){
        Map<String,Object> map=new HashMap();
        map.put("msg",msg);
        map.put("code",code);
        map.put("request_msg",request.getAttribute("msg"));
        map.put("request_code",request.getAttribute("code"));
        return map;
    }
}

前台代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

<a href="/requesttest">requesttest</a>
</body>
</html>

我们执行

 这里跳转失败的原因是我们给控制层的注解是

@RestController

该注解会使得该controller之下所有方法默认添加一个

@ResponseBody

这会使得返回的数据变成json数据类型,所以无法执行跳转

我们把@RestController改成@Controller

执行

 成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值