public class CRUDAction extends ActionSupport { public String insert() { System.out.println("增"); return null; } public void delete() { System.out.println("刪"); } public void update() { System.out.println("改"); } public List<String> query() { System.out.println("查"); return null; } }注意不用覆寫execute()了,而要動態調用裡面的方法,方法不能有參數
struts.xml
<action name="crudI" class="action.CRUDAction" method="insert"/> <action name="crudD" class="action.CRUDAction" method="delete"/> <action name="crudU" class="action.CRUDAction" method="update"/> <action name="crudQ" class="action.CRUDAction" method="query"/>
此時在網址列上的最後面打
.crudI.action可以調用到insert方法
.crudD.action可以調用到delete方法
.crudU.action可以調用到update方法
.crudQ.action可以調用到query方法
但這樣子寫太累了,所以有一種動態的調用方法出來了
想使用動態方法,必須增加這一行,預設是false,所以要改成true,和package同層
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
然後將action修改如下
<action name="crud*" class="action.CRUDAction" method="{1}"/>
此時在網址列上的最後面打
.crud!insert.action可以調用到insert方法
.crud!delete.action可以調用到delete方法
.crud!update.action可以調用到update方法
.crud!query.action可以調用到query方法
{0}代表URL本身,還有{1}~{9}可以用,一個星號對應一個{n}
所以假設crud!insert.action,*變成了insert,所以{1}也變成insert,所以就去調用insert方法了
更詳細可到這裡參考
沒有留言:
張貼留言