Action执行的时候并不一定要执行execute方法
1.配置文件中配置Action的时候用method=来指定执行哪个方法
2.在url地址中动态指定(动态方法调用DMI)
3.使用通配符
a.指定method
<a href="<%=context %>/user/userAdd">添加用户</a>
<package name="user" extends="struts-default" namespace="/user">
<action name="userAdd" class="com.wwm.struts2.user.action.UserAction" method="add">
<result>/user_add_success.jsp</result>
</action>
</package>
指定method方式会产生太多的action,所以不推荐使用
b.DMI
<a href="<%=context %>/user/user!add">添加用户</a>
<package name="user" extends="struts-default" namespace="/user">
<action name="user" class="com.wwm.struts2.user.action.UserAction">
<result>/user_add_success.jsp</result>
</action>
</package>
可以发现动态方法调用只需配置一个name为user的action即可
c.通配符
使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则
<a href="<%=context %>/actions/Teacher_add">添加老师</a>
<a href="<%=context %>/actions/Teacher_delete">删除老师</a>
<a href="<%=context %>/actions/Course_add">添加课程</a>
<a href="<%=context %>/actions/Course_delete">删除课程</a>
<package name="actions" extends="struts-default" namespace="/actions">
<action name="*_*" class="com.wwm.struts2.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
</package>