Struct2

2017-11-06  本文已影响0人  蕊er

加载流程

StrutsPrepareAndExecuteFilter Struts2中的核心类,有两个功能:预处理执行

配置常量

默认配置

<struts>
    <package name="demo" extends="struts-default" namespace="/">
        <!-- 如果访问路径404时,跳转到default-action-ref指定action -->
        <default-action-ref name="demo1"/>
        <!-- method 默认为execute()-->
        <!-- result name 默认为success-->
        <!-- result type 默认为dispatcher-->
        <!-- class 默认为com.opensymphony.xwork2.ActionSupport -->
        <action name="demo1">
            <result name="*" type="dispatcher">/welcome.jsp</result>
        </action>
    </package>
</struts>

Action编写方式

Action动态方法调用

Structs2访问servlet API

结果页面配置

//转发到Action
<result name="*" type="chain">
    <param name="actionName">demo1</param>
    <param name="namespace">/</param>
</result>   
//转发到JSP
<result name="*" type="dispatcher">/welcome.jsp</result>
//重定向到JSP
<result name="*" type="redirect">/welcome.jsp</result>
//重定向到Action
<result name="*" type="redirect">
    <param name="actionName">demo1</param>
    <param name="namespace">/</param>
</result>   

获得参数的方式

声明式异常处理

根据<exception-mapping>出现的位置,异常映射分为两种:

<package name="demo" namespace="/" extends="struts-default">
    <global-results>
        <result name="sql">/index.jsp</result>
    </global-results>
    <global-exception-mappings>
        <exception-mapping result="sql" exception="java.sql.SQLException"/>
    </global-exception-mappings>
    <action name="testParams" class="com.ognl.Demo1Action">
        <exception-mapping result="sql" exception="java.sql.SQLException"/>
    </action>
</package>

全局异常映射对所有的 Action 类都有效,但局部异常映射仅对该异常映射所在的 Action 有效;

拦截器

OGNL与Struts2的体现(ValueStack)

​ 默认情况下,栈(CompoundRoot root)中放置当前访问的Action对象,提供push()pop()方法。Context部分就是ActionContext数据中心

上一篇 下一篇

猜你喜欢

热点阅读