Spring 3 + dwz session过期跳转解决方法

9 篇文章 0 订阅
1 篇文章 0 订阅
package cn.fenghuait.sale.controller;

import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import cn.fenghuait.system.model.AppUser;
import cn.fenghuait.system.service.AppUserService;
public class SessionInterceptor extends HandlerInterceptorAdapter {
    @Autowired
    private AppUserService userService;
    
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
        if ("XMLHttpRequest".equalsIgnoreCase(request
                .getHeader("X-Requested-With"))
                || request.getParameter("ajax") != null) {
            AppUser user = userService.getCurrent();
            String jsonStr = "{\"statusCode\":301,\"message\":\"登录已超时,请重新登录!\"}";
            if (null == user) {
                // 未登录                
                ObjectMapper mapper = new ObjectMapper();
                mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
                JsonNode df = mapper.readValue(jsonStr, JsonNode.class);                
                PrintWriter out = response.getWriter();
                response.setContentType("text/plain");
                System.out.println(jsonStr);                    
                out.println(df);
                out.close();
                return false;
            }
        }
        return true;  
    }

}



xml配置:


  <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">        
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    
  <mvc:interceptors>
        <bean class="cn.fenghuait.sale.controller.SessionInterceptor"/>
  </mvc:interceptors>


需要jar包(下载地址:http://wiki.fasterxml.com/JacksonDownload):


  $(function(){
                    DWZ.init("${resourceRoot }/dwz1.2/dwz.frag.xml", {
                         loginUrl:"login.jsp", loginTitle:"用户登录",    // 弹出登录对话框
                        loginUrl:"loginDialog.jsp",    // 跳到登录页面
                        statusCode:{ok:200, error:300, timeout:301}, //【可选】
                        pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"orderField", orderDirection:"orderDirection"}, //【可选】
                        debug:false,    // 调试模式 【true|false】
                        callback:function(){
                            initEnv();
                            $("#themeList").theme({themeBase:"${resourceRoot}/dwz1.2/themes"}); // themeBase 相对于index页面的主题base路径
                        }
                    });
                });


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值