2.Struts2的Action接口和 ActionSuppor类

 .   ActionSuppor是Action的子类

.    action类默认实现Action接口,可以不写 implements Action

            public class ActionSuppor implements Action, Validateable,ValidationAware,Serializable{}
            // Validateable 用于实现验证的接口,TextProvider 文本支持,Serializable
            //一个Action可以实现Action接口。也可以继承ActionSupport.建议继承ActionSupport。
            //继承ActionSupport后里面的execute方法可实现,也可以不实现。因为ActionSupport已经实面execute方法并返回"success";

 .   Servlet是单例多线程的,而Action是多例的。每次请求重新创建此类的实例。

 .   execute方法,是struts2默认调用的方法。它必须拥有一个字符串类型的返回值。
     返回success字符串,将在<result/>中查到<result name="success">的元素。
     如果在配置<result/>时没有指定name属性,则默认为name=success.
     在继承了ActionSupport之后,也可以直接使用SUCCESS静态常量。此静态常量值,在Action接口中定义。

 .   动态方法调用:
     调用action类中其它方法: 使用"!"
     //例如: http://localhost:8080/day02/pay!save

 .   action的url搜索顺序:
     http://...8080/project/aaa/bbb/ccc/hello.action
     首先查找aaa/bbb/ccc/的namespace。如果没有则查找aaa/bbb/,如果再没有则查到aaa/直接到到为止,
     如果都没有找到则抛出404的异常信息

 .   action的后缀:
     .action是struts的默认后缀
     可以修改struts-default.properties文件,修改它的后缀名。
     但建议不要修改此文件,可以将此配置在struts文件中声明以覆盖struts-default.properties的配置。

 .   在Action类中获取参数的方式:  

    1)属性驱动 - 就是将所有要接收的参数声明成Action的成员变量;    //使用action类的属性接收用户输入    //使用领域对象接收用户输入

      2)模型型驱动 - 实现一个接口 (ModelDriver);    //使用ModelDriven的方式接收用户输入  

    3)使用原生的ServletAPI  

    4)使用注入的ServletAPI

posted @ 2013-02-13 16:40  一灵  阅读(489)  评论(0编辑  收藏  举报