strut2 允許使用者自訂個業務控制器方法
預設的情況下是execute()
然而我們可以自訂方法,從而使得同一個action可以處理多個商務邏輯
例如
1.我們的action
代碼如下 |
複製代碼 |
public class myAction extends Actionsupport { @Override public String execute() throws Exception { //預設業務處理方法 } @Override public String myExecute() throws Exception { //自訂的業務處理方法 } } |
2.有兩種方法
第一種方法
我們的strut.xml的配置如下
代碼如下 |
複製代碼 |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.custom.i18n.resource" value="mess" /> <constant name="struts.i18n.encoding" value="GBK" /> <package name="default" extends="struts-default"> <action name="login" class="org.Rudiment.action.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcom.jsp</result> </action> </package> </struts> |
當前台form的action="login" 的時候由 execute() 處理
當前台form的action="login!myExecute" 的時候由 myExecute() 處理
第二種方法
我們的strut.xml的配置如下
代碼如下 |
複製代碼 |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.custom.i18n.resource" value="mess" /> <constant name="struts.i18n.encoding" value="GBK" /> <package name="default" extends="struts-default"> <action name="login" class="org.Rudiment.action.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcom.jsp</result> </action> <action name="tlogin" class="org.Rudiment.action.LoginAction" method="myExecute"> <result name="error">/index.jsp</result> </action> </package> </struts>
|
這種方法比上一種方法多配置了一個 action name="tlogin"
這個action 多了個method="myExecute"
當我們前台的form的action="login"的時候,業務處理將提交由execute()方法處理;
當我們前台的form的action="tlogin"的時候,業務處理將提交由myExecute()方法處理