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. Yii常用技巧总结

    //YII framework路径 Yii::getFrameworkPath(); //protected/runtime Yii::app()->getRuntimePath(); //pr ...

  2. C语言宏与单井号(#)和双井号(##)

    C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操 ...

  3. SSH架构

    说说项目架构整个变化过程吧 拿用户注册来举例: 数据库里面有一张User表 需要把注册信息存储到User表中 1.   最开始是两层架构 就是cliect   +  jsp    +   DB 就是在 ...

  4. asp.net redis 实战

    当开始用    var result=new RedisClient("127.0.0.1",6379,1"1111");  这个helper ,后面有并发之后 ...

  5. 子窗体与父窗体传值操作的js示例

    //返回值给父窗体 function returnParent(value) {//获取子窗体返回值    var parent = window.dialogArguments; //获取父页面   ...

  6. 【转】Eclipse上安装GIT插件EGit及使用

    http://yufenfei.iteye.com/blog/1750124 一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32 ...

  7. hdu 4773 Problem of Apollonius

    莫名其妙就AC了-- 圆的反演-- 神马是反演? 快去恶补奥数-- #include<iostream> #include<map> #include<string> ...

  8. DragQueryFile

    附件:http://files.cnblogs.com/xe2011/CSharp_DragQueryFile.rar using System.Runtime.InteropServices; th ...

  9. Vmare12(虚拟机)安装Mac OS X Yosemite 10.10

    需要预备的软件如下: OSX10.10的系统镜像,下载好之后将后缀.cdr改成.iso,下载来源如下:    链接:http://pan.baidu.com/s/1sj4ri5R 密码:y86w un ...

  10. Debian 8 编译安装nginx 1.8

    1.安装编译环境 apt-get install build-essential apt-get install gcc make apt-get install libpcre+* apt-get ...