Action是一个逻辑控制器,并不直接对浏览器生成响应,而是返回指定逻辑视图(一个字符串)。
不推荐在Action的name属性值中使用点(.)和中划线(-),有可能会引发一些未知异常。
 
1使用Action的动态方法调用(DMI)
    1)设置struts.enable.DynamicMethodInvocation常量值为true(存在安全缺陷)
    2)targetForm.action = "actionName!methodName"(method是Action里面跟execute性质一样的方法)
 
2指定method属性及使用通配符
    通过通配符将一个Action处理类定义成多个逻辑Action
    1)一个Action里多个方法写多个class和result 一样,方法不一样的Action       
 

<action name="login" class="org.crazyit.app.action.LoginRegistAction">

            <!-- 定义逻辑视图和物理视图之间的映射关系 -->
            <result name="error">/WEB-INF/content/error.jsp</result>
            <result>/WEB-INF/content/welcome.jsp</result>
        </action>
        <!-- 配置regist Action,处理类为LoginRegistAction
            指定使用regist方法处理请求-->
        <action name="regist" class="org.crazyit.app.action.LoginRegistAction"  method="regist">
            <!-- 定义逻辑视图和物理视图之间的映射关系 -->
            <result name="error">/WEB-INF/content/error.jsp</result>
            <result>/WEB-INF/content/welcome.jsp</result>
        </action>
          action=actionName
    2)在name属性里加通配符,在class、method属性及result子元素中使用{N}的形式来代替前面第N个*号所匹配的子串
        <!-- 使用模式字符串定义Action的name,指定所有以Action结尾的请求,
        都可用LoginRegistAction来处理,method属性使用{1},
        这个{1}代表进行模式匹配时第一个*所代替的字符串 -->
        <action name="*Action" class="org.crazyit.app.action.LoginRegistAction"
            method="{1}">
    3)<action name="*Action" class="org.crazyit.app.action.{1}Action">
    4)<action name="*_*" class="org.crazyit.app.action.{1}Action" method="{2}">
    5)<action name="*">
            <result>/WEB-INF/content/{1}.jsp</result>
        </action>
    Action  搜索顺序:
                    除非请求的URL与Action的name一模一样,否则按struts.xml中Action定义的先后顺序来决定处理请求的Action. 
 
3配置默认Action
  <default-action-ref name="aaa">
            <!-- 该元素可以出现0至多次-->
              <param name="参数名">参数值</param>
        </default-action-ref>
    <action name="aaa" class="" method="" converter="">
            ...
    </action>
 
4配置Action默认处理类
    <default-class-ref name="com.opensymphony.xwork2.ActionSupport"/>
 
5Config Browser插件
安装:struts2-config-browser-plugin-2.3.16.3.jar复制到项目WEB-INF\lib下重启项目
 
localhost:8080/项目名/config-browser/index.action
 
 

Action配置的更多相关文章

  1. Struts2基于注解的Action配置

    使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了. 要使用注解方式,我们必须添加一个额外包:struts2-convention-plu ...

  2. python调用zabbix接口实现Action配置

    要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...

  3. struts2 action配置时 method 省略不写 默认执行方法是父类ActionSuppot中的execute()方法

    struts2 action配置时 method 省略不写 默认执行方法是父类ActionSuppot中的execute()方法

  4. struts2视频学习笔记 03-06(Struts 2配置文件无提示问题,Action配置中的各项默认值,各种转发类型)

    课时3 解决Struts 2配置文件无提示问题(eclipse):window→preference→XML→XML Catlog

  5. struts中的常量,action配置中的默认值

    1.struts中Action的开发方式 继承ActionSupport类,这种方法实现的Action可以进行数据校验: 实现Action接口: 不继承任何类,不实现任何接口: 是否继承类或实现接口, ...

  6. Struct.xml Action配置

    <package name="default" namespace="/" extends="struts-default"> ...

  7. 关于Struts2中 Action 配置method的解读

    为Action配置method属性: 将Action类中的每一个处理方法都定义成一个逻辑Action方法. <!DOCTYPE struts PUBLIC "-//Apache Sof ...

  8. 自学Zabbix3.12.3-动作Action-自动发现action配置

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix3.12.3-动作Action-自动发现action配置 1. 首先先学习  Ne ...

  9. 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)

    1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下: <action name="*"> ...

随机推荐

  1. c语音中打印参数调用层级即call stack, call trace

    http://stackoverflow.com/questions/105659/how-can-one-grab-a-stack-trace-in-c There's backtrace(), a ...

  2. 控制反转(IoC)与依赖注入(DI)

    前言 最近在学习Spring框架,它的核心就是IoC容器.要掌握Spring框架,就必须要理解控制反转的思想以及依赖注入的实现方式.下面,我们将围绕下面几个问题来探讨控制反转与依赖注入的关系以及在Sp ...

  3. oracle 语句优化

    1. 选用适合的ORACLE优化器         ORACLE的优化器共有3种: a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可 ...

  4. Eclipse的安装以及与Tomcat的集成

    1.下载indgo版本的Eclipse:http://www.eclipse.org(64位:eclipse-jee-indigo-SR2-win32-x86_64.zip) 2.解压到D:\Prog ...

  5. 利用UI_APPEARANCE统一设置UITabBarItem样式

    -(void)setupTabBarItemAttributes{ //attributes NSMutableDictionary *selectedAttrs= [NSMutableDiction ...

  6. [转]mysql 5.6 存储过程+事务+游标+错误异常抛出+日志写入

    转自:http://www.wolonge.com/post/detail/118249 DELIMITER $$ USE `ecstore`$$ DROP PROCEDURE IF EXISTS ` ...

  7. 简约的返回顶部效果(jQuery)

    博客建好也快一个月了,主题是在原有主题的基础上做的修改,喜欢这样的清新简约风格,为了更好的体验,以后也会经常做修改. 一般博客的文章都比较长,看到下面不能快速返回到顶部还真是不方便,今天自己动手写了一 ...

  8. MVC传递Model之TempData、ViewData、ViewBag差别及用途

    MVC使用过程中常常会用到TempData.ViewData.ViewBag三种方式,这三种什么差别呢? TempData:默认存储于Session中,可通过继承ITempDataProvider接口 ...

  9. j2ee学习笔记 Filter过滤器

    作用:过滤response和request对象的内容 使用: Filter是J2EE的一个接口,自定义Filter需要实现该接口,并重写所有的方法. Filter提供的方法: init() doFil ...

  10. Install-User.ps1

    Install-User.ps1 function Install-User { param( [Parameter()] [string]$ComputerName = $env:computern ...