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路径
}
});
});