DMI(Dynamic Method Invoke)即动态,是strus2的一个特性,我们知道,在最开始学习strus2时,往往一个action中只有一个excute方法,比如说add,delete,update,search,往往要在struts.xml中配置配置多个<action>以便指定不同的method,但是strus2目前提供了DMI机制,即如下配置即可:
<action name="book" class="com.speed.BookAction">
<result>/index.jsp</result>
</action>
而访问时,只需如下访问便可实现一个action.java中配置多个方法:
<
body
>
<
a
href
=
"book!addBook.action"
>添加图书信息</
a
><
br
/>
<
a
href
=
"book!delBook.action"
>删除图书信息</
a
><
br
/>
<
a
href
=
"book!updateBook.action"
>修改图书信息</
a
><
br
/>
<
a
href
=
"book!readBook.action"
>查询图书信息</
a
><
br
/>
</
body
>
其中,book对应<action>的name,addBook是action中的方法名,统一格式为:actionName!methodName
但要注意:有些struts的版本中动态方法调用时默认关闭的,要显式打开,
在struts.xml中添加<constant name="struts.enable.DynamicMethodInvocation" value="true" /> ,打开动态方法调用。