-
Action wildcard 通配符(配置量降到最低)
使用通配符,就是为了配置简便,但是一定遵守“约定优于配置”原则,约定就是做项目之前最好事先与项目组的人或是自己规定好命名规则。
多个* {1}代表:众多*中的第一个* 但是一定要注意的是命名规范与路径问题: 例如:
<package name = "actions" extends = "struts-default" namespace="/actions">
<!-- 定义action -->
<action name="*_*" class="ab.{1}Action" method="{2}">
<result name="success">/{1}_{2}_success.jsp</result>
</action>
</package>
其中*_*可以代表(Student_add)或者其他只要符合以上规则都行
StudentAction.java文件中命名统一(TeacherAction中同理)
package ab;
import com.opensymphony.xwork2.ActionSupport;
public class StudentAction extends ActionSupport{
public String add(){
return "success";
}
public String delect(){
return SUCCESS;
}
}
Index.jsp中:(a标签中不是/开头,不然就会找不到映射的位置)
<a href="actions/Student_add.action">添加学生</a>
<a href="actions/Student_delect.action">删除学生</a>
<br>
<a href="actions/Teacher_add.action">添加老师</a>
<a href="actions/Teacher_delect.action">删除老师</a>
要注意的是:如果有类似的action,它先匹配最精确的信息,如果都有*,就谁放前面就先执行那个。
-
Action Method_DMI
Action执行的时候并一定要执行execute方法,例如
public String add(){
return "success";
}
1.可以在配置文件中配置Action的时候用method=来指定哪个方法,但是不常用因为会产生太多的action;在action 后加上method=“”
2.主要推荐使用:动态方法调用DMI(url地址中动态指定)