package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class ChildrenAction extends ActionSupport {
private String result = “儿童用品”;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public String execute() {
return "success";
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class ClothAction extends ActionSupport {
private String result = “服装”;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public String execute() {
return "success";
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class LifeAction extends ActionSupport {
private String result = “生活用品”;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public String execute() {
return "success";
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class MyInterceptor1 implements Interceptor { @Override public String intercept(ActionInvocation ai) throws Exception { System.out.println("interceptor1"); boolean hasLogin = true; if(hasLogin) {//Assuming that the conditions are established, allow access to the current action System.out.println("before interrupt"); ai.invoke();//Pass, not intercept. Don't call is to intercept, don't let go down. System.out.println("after interrupt");
return null;
}else {//条件不成立,跳转到某个特定的
return "notLogin";
}
}
@Override
public void destroy() {
}
@Override
public void init() {
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class MyInterceptor2 implements Interceptor {
@Override
public String intercept(ActionInvocation ai) throws Exception {
System.out.println("interceptor2");
ai.invoke();
return null;
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void init() {
// TODO Auto-generated method stub
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class MyInterceptor3 implements Interceptor {
@Override
public String intercept(ActionInvocation ai) throws Exception {
System.out.println("interceptor3");
ai.invoke();
return null;
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void init() {
// TODO Auto-generated method stub
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class MyMethodInterceptor1 extends MethodFilterInterceptor{
@Override
public String doIntercept(ActionInvocation ai) throws Exception {
System.out.println("interceptor1");
boolean b = true;
if(b) {
ai.invoke();
return null;
} else {
return "error";
}
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class TargetAction1 extends ActionSupport {
@Override
public String execute() {
System.out.println("target action1");
return "success";
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class TargetAction2 extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String execute() {
System.out.println(“target action2, name=” + name);
return “success”;
}
}
package com.chen.struts2.day4;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
public String add(){
System.out.println("add");
return "success";
}
public String delete(){
System.out.println("delete");
return "success";
}
public String update(){
System.out.println("update");
return "success";
}
}
<?xml version="1.0" encoding="UTF-8" ?><package name="day4" extends="struts-default">
<action name="lifeAction" class="com.chen.struts2.day4.LifeAction">
<result name="success">/life.jsp</result>
</action>
<action name="clothAction" class="com.chen.struts2.day4.ClothAction">
<result name="success">/cloth.jsp</result>
</action>
<action name="childrenAction" class="com.chen.struts2.day4.ChildrenAction">
<result name="success">/children.jsp</result>
</action>
</package>
<package name="inter" extends="struts-default" namespace="/inter">
<interceptors>
<interceptor name="interceptor1" class="com.chen.struts2.day4.MyInterceptor1" />
<interceptor name="interceptor2" class="com.chen.struts2.day4.MyInterceptor2"></interceptor>
<interceptor name="interceptor3" class="com.chen.struts2.day4.MyInterceptor3"></interceptor>
<interceptor-stack name="interceptorStack1">
<interceptor-ref name="interceptor1" />
<interceptor-ref name="interceptor2"/>
</interceptor-stack>
</interceptors>
<!--
<default-interceptor-ref name="interceptorStack1"></default-interceptor-ref>
-->
<global-results>
<result name="notLogin">/login.jsp</result>
</global-results>
<action name="targetAction1" class="com.chen.struts2.day4.TargetAction1">
<result name="success">/index.jsp</result>
<!--
<interceptor-ref name="interceptor2"></interceptor-ref>
<interceptor-ref name="interceptor1"></interceptor-ref>
-->
</action>
<action name="targetAction2" class="com.chen.struts2.day4.TargetAction2">
<result name="success">/index.jsp</result>
<!--
<interceptor-ref name="interceptorStack1"></interceptor-ref>
-->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="interceptor3"></interceptor-ref>
</action>
</package>
<package name="user" extends="struts-default" namespace="/user">
<interceptors>
<interceptor name="myMethodInter1" class="com.chen.struts2.day4.MyMethodInterceptor1">
<!--
<param name="includeMethods">add,delete</param>
-->
<param name="excludeMethods">update</param>
</interceptor>
</interceptors>
<action name="user_*" class="com.chen.struts2.day4.UserAction" method="{1}">
<result name="success">/index.jsp</result>
<interceptor-ref name="myMethodInter1"></interceptor-ref>
</action>
</package>