loginInterceptor.java中:
package cn.com.Sample.interceptor;
import cn.com.Sample.action.UserAction;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.ActionProxyFactory;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class LoginInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext actionContext=invocation.getInvocationContext();
UserAction action=(UserAction)invocation.getAction();
//ActionProxy proxy=invocation.getProxy();
if((actionContext.getSession().get("username")==null)||
"".equals(actionContext.getSession().get("username")))
return "login";
String result=invocation.invoke();
return null;
}
}
loginAction.java中:
package cn.com.Sample.action;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction {
private String username;
private String password;
public String login(){
if("sd".equals(username)&&"11".equals(password)){
ActionContext.getContext().getSession().put("username", username);
return "success";
}
return "login";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
struts.xml中:
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value="action,,do,webwork"/>
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
<package name="struts2_OGNL01" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="LoginInterceptor" class="cn.com.Sample.interceptor.LoginInterceptor"></interceptor>
<interceptor name="SimpleInterceptor" class="cn.com.Sample.interceptor.SimpleInterceptor"></interceptor>
<interceptor-stack name="MyStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="LoginInterceptor"/>
<interceptor-ref name="SimpleInterceptor"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="MyStack"/>
<global-results>
<result name="login">login.jsp</result>
</global-results>
<action name="User" class="cn.com.Sample.action.UserAction" >
<result name="add_input">addInput.jsp</result>
<result name="add_success">addSuccess.jsp</result>
<result name="static">MethodCalls.jsp</result>
</action>
<action name="Login" class="cn.com.Sample.action.LoginAction" >
<interceptor-ref name="defaultStack"/>
<result>success.jsp</result>
</action>
</package>
</struts>