IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Struts2学习之配置默认Action和处理类

    果冻想发表于 2016-03-18 12:45:49
    love 0

    配置默认Action

    有的时候,由于我们的粗心大意,将用户请求发送到了一个不存在的Action,这个时候系统就会出现异常,这并不是我们希望看到的。即使用户的请求找不到对应的Action时,存在一个默认的Action可以来接管用户的请求,这是我们希望看到的。

    在Struts2中,可以通过配置<default-action-ref ... />设置默认的Action。下面通过一个最简单的例子来说明:

    <struts>
       <package name="lee" extends="struts-default">
            <default-action-ref name="default" />
            <action name="default" class="com.jellythink.practise.LoginAction">
                <result name="default">/default.jsp</result>
            </action>
       </package>
    </struts>
    

    配置<default-action-ref ... />时,需要指定一个name属性,该name属性指定容器中另一个有效的Action;这样的话,这个Action将成为该容器中默认的Action。

    将默认Action配置在默认命名空间里就可以让该Action处理所有用户请求,因为默认命名空间的Action可以处理任何命名空间的请求

    配置Action的默认处理类

    在这篇《Struts2学习之Action的基本配置》文章中,说到Action的配置时,属性class是一个可选属性,如果没有指定class属性,则系统默认使用ActionSupport作为Action处理类。

    有的时候,使用默认的ActionSupport作为Action处理类,也是很不错的。如果想要“标新立异”,Struts2允许我们自己配置Action的默认处理类,配置Action的默认处理类使用<default-class-ref ... />元素,配置该元素时只需指定一个class属性,该class属性指定的类就是Action的默认处理类。

    我们可以打开struts2-core-2.3.24.1.jar中的struts-default.xml文件,会看到以下代码:

    <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
    

    由于我们在struts.xml中定义的package都继承了struts-default包,这也就继承了默认的处理类。我们可以按照我们的需要,自定义默认处理类。具体的用法和<default-action-ref ... />类似,可以参见<default-action-ref ... />的配置。

    总结

    这篇文章总结的知识点非常的简单,了解了这篇文章中的知识点,对后续阅读别人的代码都会有很大的帮助。

    果冻想-一个原创技术文章分享网站。

    2016年01月26日 于呼和浩特。

    未经允许不得转载:果冻想 » Struts2学习之配置默认Action和处理类



沪ICP备19023445号-2号
友情链接