springmvc使用拦截器跳转至不同页面

前言

在前后端未分离的传统web项目中,当前端访问后台时,后台controller会跳转至指定页面。
假如现在需要根据页面选择的不同语言,让后台跳转至不同页面。传统做法是写不同的controller,每个controller对应一个语言的页面。
其实,我们可以只写一个controller,然后再通过拦截器对页面进行修改。

代码

1.controller代码

返回ok.jsp页面

@RequestMapping("/ok")
public String queryUser(@RequestParam(required = false) String language, HttpSession session) {
    return "ok";
}

2.拦截器代码

核心逻辑是postHandle方法,对返回的ok.jsp界面进行修改

@Component
public class UserInterceptor extends HandlerInterceptorAdapter {


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("======UserInterceptor用户权限校验=========");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("========UserInterceptor修改modelAndView======");
        HttpSession session = request.getSession();
        if(modelAndView != null && session != null) {
            String modifyViewName = modelAndView.getViewName() + "_" + session.getAttribute("language");
            modelAndView.setViewName(modifyViewName);
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("========UserInterceptor资源释放======");
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值