改springboot项目遇到的@Restcontroller返回网页问题

在实际写项目的过程中,我发现@rest controller不能返回页面

   @RequestMapping("/logout")
    public String logout(HttpSession session){
        session.invalidate();
        return "redirect:/web/login.html";
    }

(注意重定向的路径要写对)

@RestController加在类上面的注解,使得类里面的每个方法都将json/xml返回数据加返回到前台页面中。@RestController=@Controller+@ResponseBody

我的解决方法是将 @Restcontroller改为@Controller,再在其它方法前添加@ResponseBody注解

@Controller//@Controller+@Responsebody
@RequestMapping("users")
public class UserController extends BaseController {
    @Autowired
    private IUserService userService;
@ResponseBody
    @RequestMapping("reg")
    public JsonResult<Void> reg(User user) {
        // 调用业务对象执行注册
        userService.reg(user);
        // 返回
        return new JsonResult<Void>(OK);
    }
    @ResponseBody
    @RequestMapping("login")
    public JsonResult<User> login(String username,
                                  String password,
                                  HttpSession session){
        User data= userService.login(username,password);
        // 向session对象中完成数据的绑定(session全局的)
session.setAttribute("uid", data.getUid());
session.setAttribute("username", data.getUsername());
session.setMaxInactiveInterval(24*60*60);
//获取session中绑定的数据
        System.out.println(getUidFromSession(session));
        System.out.println(getUsernameFromSession(session));
        return  new JsonResult<>(OK,data);
    }

    @RequestMapping("/logout")
    public String logout(HttpSession session){
        session.invalidate();
        return "redirect:/web/login.html";
    }
 <li>
                            <a class="nav-link" href="/users/logout" th:href="@{/users/logout}" style="color: #208c60">注销</a>
                        </li>

前端代码

老师给我的建议是在前端发送ajax请求,在controller层不返回图像,实现前后端分离。希望我的方案能帮到和我一样啥也不会的人,后续Ajax等写完在分享

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值