• Struts2零碎点整理


    1. 关于 Struts2 请求的扩展名问题


    1). org.apache.struts2 包下的 default.properties 中配置了 Struts2 应用的一些常量
    2). struts.action.extension 定义了当前 Struts2 应用可以接受的请求的扩展名.
    3). 可以在 struts.xml 文件中以常量配置的方式修改 default.properties 所配置的常量.

          <constant name="struts.action.extension" value="action,do,"></constant>

    2. ActionSupport类

    1). ActionSupport 是默认的 Action 类: 若某个 action 节点没有配置 class 属性, 则 ActionSupport 即为
    待执行的 Action 类. 而 execute 方法即为要默认执行的 action 方法
    <action name="testActionSupport">
        <result>/testActionSupport.jsp</result>
    </action>
    等同于
    <action name="testActionSupport"
        class="com.opensymphony.xwork2.ActionSupport"
        method="execute">
        <result>/testActionSupport.jsp</result>
    </action>
    2). 在手工完成字段验证, 显示错误消息, 国际化等情况下, 推荐继承 ActionSupport.
    3. result节点的相关配置介绍
    1). result 是 action 节点的子节点
    2). result 代表 action 方法执行后, 可能去的一个目的地
    3). 一个 action 节点可以配置多个 result 子节点.
    4). result 的 name 属性值对应着 action 方法可能有的一个返回值.

        <result name="index">/index.jsp</result>

    5). result 一共有 2 个属性, 还有一个是 type: 表示结果的响应类型

    6). result 的 type 属性值在 struts-default 包的 result-types 节点的 name 属性中定义.
             常用的有
        > dispatcher(默认的): 转发. 同 Servlet 中的转发.
        > redirect: 重定向
        > redirectAction: 重定向到一个 Action
            注意: 通过 redirect 的响应类型也可以便捷的实现 redirectAction 的功能!    
            <result name="index" type="redirectAction">
                    <param name="actionName">testAction</param>
                    <param name="namespace">/user</param>
              </result>
            或者
           <result name="index" type="redirect">/user/testAction.do</result>  
        > chain: 转发到一个 Action
            注意: 不能通过 type=dispatcher 的方式转发到一个 Action,
            
            只能是:  
            <result name="test" type="chain">
                    <param name="actionName">testAction</param>
                    <param name="namespace">/user</param>
              </result>
        
            不能是:
            <result name="test">/atguigu/testAction.do</result>

    3 动态方法调用:

    动态方法调用: 通过url动态调用 Action 中的方法
    示例:
    <package name="default" namespace="/" extends="struts-default">
           <!-- 配置一个action 一个struts2的请求就是一个action
                name属性:对应一个struts2请求的名字,不包含扩展名
                result元素用来配置结果
            -->
           <action name="product" class="com.elgin.entity.Product">
              <result name="details">/details.jsp</result>
           </action>
        </package>
    •URI: 
    –/Product.action: Struts调用 Product 类的 execute
    –/Product!save.action: Struts调用 Product 类的 save() 方法
    默认情况下, Struts 的动态方法调用处于禁用状态。即:<constant name="struts.enable.DynamicMethodInvocation" value="false" />
    如果想要打开使用,将上述的value配置为true即可,但是不推荐!

    4 声明式异常处理

    exception-mapping元素: 配置当前 action 声明式异常处理
    exception-mapping元素中有 2 个属性
    exception: 指定需要捕获的的异常类型。异常的全类名
    result: 指定一个响应结果, 该结果将在捕获到指定异常时被执行, 既可以来自当前 action 的声明, 也可以来自 global-results声明.
    可以通过global-exception-mappings元素为应用程序提供一个全局性的异常捕获映射. 但在 global-exception-mappings 元素下声明的任何 exception-mapping 元素只能引用在 global-results元素下声明的某个 result 元素
    声明式异常处理机制由  ExceptionMappingInterceptor拦截器负责处理, 当某个 exception-mapping 元素声明的异常被捕获到时, ExceptionMappingInterceptor拦截器就会向 ValueStack中添加两个对象:
    exception: 表示被捕获异常的 Exception 对象
    exceptionStack: 包含着被捕获异常的栈

    可以在视图上通过 <s:property> 标签显示异常消息




  • 相关阅读:
    /sbin/nologin 和 /bin/false 的区别
    lesson
    df 命令详解
    课后习题-7 阶段汇总
    javascript Window Navigator
    javascript 正则表达式
    linux crontab 的使用
    linux环境变量
    linux第一个C语言和sh脚本
    linux 文件常用操作
  • 原文地址:https://www.cnblogs.com/elgin-seth/p/5293745.html
Copyright © 2020-2023  润新知