Action

作者: volenqar | 来源:发表于2018-12-18 12:18 被阅读0次

    访问Servlet接口

    1. ActionContext
    2. 实现接口ServletContextAware...
    3. ServletActionContext工具类

    配置Action

    定义Action通过使用<package.../>下的<action.../>子元素来完成,而每一个package元素配置一个包
    每个包就是多个Action、多个拦截器、多个拦截器引用的集合
    子包可以从一个或多个父包中继承到拦截器、拦截器栈、action等配置
    struts-default抽象包,该包下包含了大量结果类型定义、拦截器定义、拦截器引用定义等,这些定义是配置普通Action的基础,所以开发者定义的package通常应该继承struts-default包

    Action的基本配置

    每个<result.../>元素定义逻辑视图和物理视图之间的一次映射

    使用Action的动态方法调用(Dynamic Method Invocation)

    action="actionName!methodName"

    指定method属性及使用通配符

    一个Action处理类定义成多个逻辑Action
    使用通配符
    当用户请求的URL同时匹配多个Action时,究竟由哪个Action来处理用户请求呢?

    配置默认Action

    <default-action-ref.../>

    配置Action的默认处理类

    <default-class-ref.../>

    配置处理结果

    理解处理结果

    Action处理完用户请求后,并未直接将请求转发给任何具体的视图资源,而是返回一个逻辑视图(这个逻辑视图只是一个普通字符串),Struts 2框架收到这个逻辑视图后,把请求转发到对应的视图资源,视图资源将处理结果呈现给用户。

    配置结果

    局部结果:

    • name:该属性指定所配置的逻辑视图名
    • type:该属性指定结果类型

    Struts 2支持的结果类型

    介绍plainText redirect redirectAction
    使用plainText结果类型时可指定如下两个参数。
    location:指定实际的视图资源
    charSet:指定输出页面时所用的字符集

    redirect(重定向)会丢失所有的请求参数、请求属性——当然也丢失了Action的处理结果
    使用redirect结果类型的效果是,系统将调用HttpServletResponse的sendRedirect(String)方法来重定向指定视图资源,这种重定向的效果就是重新产生一个请求,因此所有的请求参数、请求属性、Action实例和Action中封装的属性全部丢失。
    使用redirect结果类型时可指定如下两个参数
    location:
    parse:

    redirectAction使用ActionMapperFactory提供的ActionMapper来重定向请求。
    使用redirectAction结果类型时可指定如下两个参数
    actionName:
    namespace:

    动态结果

    Action属性值决定物理视图资源

    使用PreResultListener
    Struts2 应用可由Action、拦截器添加PreResultListener监听器
    一旦为拦截器添加了PreResultListener监听器,该监听器会对该拦截器所拦截的所有Action都起作用

    配置Struts 2的异常处理

    最好的方式是可以通过声明式的方式管理异常处理
    Action接口里的execute()方法签名:
    public String execute throws Exception
    Struts 2 的异常处理机制是通过在struts.xml文件中配置<exception-mapping.../>元素完成的,配置该元素时,需要指定如下两个属性。

    • exception:此属性指定该异常映射所设置的异常类型
    • result:此属性指定Action出现该异常时,系统返回result属性值对应的逻辑视图名

    Convention插件与“约定”支持

    从Struts 2.1开始,Struts引入了Convention插件来支持零配置, 借鉴了Rails的创意,“约定优于配置”原则

    Action链的约定

    相关文章

      网友评论

          本文标题:Action

          本文链接:https://www.haomeiwen.com/subject/yklxkqtx.html