锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
<action name="regist" class="cc.apl330.action.MemberAction">
<result >/suc.jsp</result>
<result name="isExists">/fail.jsp</result>
</action>
</package>
榪愯姝e父錛岀敤鎴鋒敞鍐屾垚鍔熷悗浼氳煩杞埌suc.jsp
濡傛灉灝嗛厤緗敼鎴?/p>
<package name="member" namespace="/member" extends="struts-default">
<action name="regist" class="cc.apl330.action.MemberAction">
<result >/suc.html</result>
<result name="isExists">/fail.jsp</result>
</action>
</package>
榪愯涓嶆甯革紝鐢ㄦ埛杈撳叆鏁版嵁鍚庯紝鐐瑰嚮紜畾銆傛煡鐪嬫暟鎹簱錛屾暟鎹簱鍐欏叆姝e父錛屼絾欏甸潰絀虹櫧錛屽湴鍧鏍忓嵈姝e父錛?/font>http://localhost:8080/test/member/regist
榪愯涓葷被
Main.java
public class Main {
public static void main(String[] args) {
new ActionInterceptor().invoke() ;
}
}
/********************************/
鎷︽埅鍣ㄦ牳蹇?br>ActionInterceptor.java
import java.util.ArrayList;
import java.util.List;
public class ActionInterceptor {
List<Inte> intes = new ArrayList<Inte>() ;
int index = -1 ;
public ActionInterceptor() {
intes.add(new FistInte()) ;
intes.add(new SecondInte()) ;
}
public void invoke() {
index++ ;
if(index >= intes.size()) {
new Action().execute() ;
}else {
this.intes.get(index).inte(this) ;
}
}
}
/********************************/
鎺ュ彛:涓庢嫤鎴櫒涔嬮棿鐨勯氳鎺ュ彛
Inte.java
public interface Inte {
void inte(ActionInterceptor actioninterceptor) ;
}
/********************************/
鎺ュ彛浣跨敤綾?br>FistInte.java
public class FistInte implements Inte {
@Override
public void inte(ActionInterceptor actioninterceptor) {
System.out.println(1) ;
actioninterceptor.invoke() ;
System.out.println(-1) ;
}
}
SecondInte.java
public class SecondInte implements Inte {
@Override
public void inte(ActionInterceptor actioninterceptor) {
System.out.println(2) ;
actioninterceptor.invoke() ;
System.out.println(-2) ;
}
}
/********************************/
鍔ㄤ綔綾?
Action.java
public class Action {
public void execute() {
System.out.println("execute!") ;
}
}