什么是DMI?DMI即所謂的動態(tài)方法調(diào)用。
Action在執(zhí)行的時候并不一定要執(zhí)行execute方法,可以在配置文件中配置Action的時候用method=來指定執(zhí)行哪個方法,也可以在url地址中動態(tài)指定(動態(tài)方法調(diào)用DMI)。
第一種方式,在struts.xml中對Action添加method:
<struts>
<constant name="struts.devMode" value="true" />
<span style="color:#ff6666;"><package name="user" extends="struts-default" namespace="/user">
<action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">
<result>/user_add_success.jsp</result>
</action>
</span>
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>/user_add_success.jsp</result>
</action>
</package>
</struts>
上述紅色字體部分就是主要的方式
第二種方式,即DMI,很簡單--修改url即可
<% String context = request.getContextPath(); %>
<a href="<%=context %>/user/user!add">添加用戶</a>
就是在地址后添加一個“!”然后緊接著方法名即可,此種方式類似于通配符。
無論何種方式,都需要添加一個method(Java文件中)
ackage com.bjsxt.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
public String add() {
return SUCCESS;
}
}
它要返回一個字符串,在實際開發(fā)中一般都使用第二種方式,因為它減少了Action的數(shù)量。
以上就是Struts2的DMI動態(tài)調(diào)用方式的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。