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;
}
}