package com.sp2p.system.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; import com.shove.vo.HelpMessage; import com.shove.web.action.BaseAction; import com.sp2p.constants.IConstants; import com.sp2p.system.exception.FrontHelpMessageException; /** * 前台登录跳转 * * @author 杨程 * @Create Jun 3, 2011 * */ public class VirtualUserInterceptor implements Interceptor { public static Log log = LogFactory.getLog(VirtualUserInterceptor.class); private static final long serialVersionUID = 1L; private HttpServletRequest request; private HttpServletResponse response; public void destroy() { } public void init() { } public String intercept(ActionInvocation invocation) throws Exception { request = ServletActionContext.getRequest(); response = ServletActionContext.getResponse(); String result; try { result = invocation.invoke(); } catch (FrontHelpMessageException e) { BaseAction action = (BaseAction) invocation.getAction(); HelpMessage helpMessage = action.getHelpMessage(); request.getSession().setAttribute("helpMessage", helpMessage); if (isAjaxRequest()) { response.getWriter().print(IConstants.FRONTPAGEJUMP); return null; } else { return IConstants.FRONTPAGEJUMP; } } return result; } private boolean isAjaxRequest() { String header = request.getHeader("X-Requested-With"); if (header != null && "XMLHttpRequest".equals(header)){ return true; } return false; } }