Struts2——通配符,Action Method_DMI

Posted 入坑的读书人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2——通配符,Action Method_DMI相关的知识,希望对你有一定的参考价值。

  1. 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,它先匹配最精确的信息,如果都有*,就谁放前面就先执行那个。

  2. Action Method_DMI

     

    Action执行的时候并一定要执行execute方法,例如

    public String add(){

    return "success";

    }

    1.可以在配置文件中配置Action的时候用method=来指定哪个方法,但是不常用因为会产生太多的action;在action 后加上method=“”

    2.主要推荐使用:动态方法调用DMIurl地址中动态指定)

以上是关于Struts2——通配符,Action Method_DMI的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 Action中动态方法调用通配符的使用

Struts2.5动态方法调用action和使用通配符访问action

struts2开发action 的三种方法以及通配符路径匹配原则常量

第三章Struts2 Action中动态方法调用通配符的使用

struts2 2.5.16 通配符方式调用action中的方法报404

Struts2中的OGNL通配符