在Struts2中配置Action

<package>:

1.定义Action使用<package>标签下的<action>标签完成,一个<package>下可以有多个<action>。

2.在<package>中有如下几个属性:

(1)name:必要属性,该<package>的名字,也是其他<package>引用此<package>时使用的名字。

(2)extends:非必要属性,指定被继承的<package>。

(3)abstract:非必要属性,在<package>中定义此属性后,此<package>下不可以有<action>元素。

(4)namespace:非必要属性,此<package>的命名空间。

简单的例子:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 配置第一个包,该包的name属性为package_a,继承struts-default -->
    <package name="package_a" extends="struts-default">
        <!-- 定义拦截器部分:省略 -->
        <!--
        <interceptors>
            <interceptor-stack name="xxx">
                <interceptor-ref name="xxx1"/>
                <interceptor-ref name="xxx2"/>
            </interceptor-stack>
        </interceptors>
        -->
        <!-- 定义第一个Action -->
        <action name="first">
            <result>first.jsp</result>
        </action>
        <!-- 定义第二个Action -->
        <action name="secend">
            <result>secend.jsp</result>
        </action>
    </package>
    <!-- 配置第二个包, -->
    <package name="package_b" extends="package_a" namespace="/a">
        <!-- 定义拦截器部分:省略 -->
        <!--
        <interceptors>
            <interceptor-stack name="xxx">
                <interceptor-ref name="xxx1"/>
                <interceptor-ref name="xxx2"/>
            </interceptor-stack>
        </interceptors>
        -->
        <!-- 定义第一个Action -->
        <action name="first">
            <result>first.jsp</result>
        </action>
        <!-- 定义第二个Action -->
        <action name="secend">
            <result>secend.jsp</result>
        </action>
    </package>
</struts>

3.namespace属性的作用:

  使用namespace区分在同一个应用的同名Action,在同一个namespace下不可以有同名的Action出现,如果没有为<package>指定namespace属性则该<package>处于默认的namespace下。

  默认的namespace可以处理任何namespace下的action,这样的情况是在其namespace中没有找到相应的action,此时系统才会在默认的namespace下寻找此action,如果默认namespace下也没有此action则系统报错。系统优先在指定namespace下寻找action。

<action>:

1.<action>位于<package>下,不能单独存在于<package>外。

2.<action>中有如下几个属性:

(1)name:

  必要属性,指定此action的名字,同时也指定了该action处理的请求的URL。

(2)class:

  非必须属性,指定处理该action的实现类,如果没有指定此属性,则该action的实现类为系统默认的ActionSupport类。

(3)method:

  非必须属性,指定处理方法。

3.默认Action:

  配置默认Action使用<default-action-ref>标签进行配置,此标签中的name属性指向了一个有效的Action,当用户的请求找不到对应的Action时,使用此默认Action处理用户请求。

简单代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="package_a" namespace="/a" extends="struts-default">
        <!-- 定义一个默认的Action -->
        <default-action-ref name="secend"/>
        <action name="first_a" class="myAction.FirstAction" method="start">
            <result>start.jsp</result>
        </action>
        <action name="first_b" class="myAction.FirstAction" method="end">
            <result>end.jsp</result>
        </action>
        <action name="secend" class="myAction.SecendAction">
            <result name="success">welcome.jsp</result>
            <result name="error">error.jsp</result>
        </action>
        <!-- 默认处理类为ActionSupport -->
        <action name="third">
            <result name="success">welcome.jsp</result>
            <result name="error">error.jsp</result>
        </action>
    </package>
</struts>

在Struts2中配置Action的更多相关文章

  1. 详解struts2中配置action的方法

    如何解决action太多的问题??我们因为需要不同的方法,所以往往建立很多不同的类,但是每个类中往往仅仅几行代码,不仅浪费了时间,而且配置起来也很繁琐,所以,建立一个共有的类,然后根据以下方式来操作, ...

  2. struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?

    struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? 解答: 1)可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范set和get ...

  3. 在struts2中配置自定义拦截器放行多个方法

    源码: 自定义的拦截器类: //自定义拦截器类:LoginInterceptor ; package com.java.action.interceptor; import javax.servlet ...

  4. 07. struts2中对Action的管理方式

    web.xml配置文件的常用代码 <filter> <filter-name>struts2</filter-name> <filter-class>o ...

  5. 05. struts2中为Action属性注入值

    概述 struts2为Action中的属性提供了依赖注入功能 在struts2的配置文件中,我们可以很方便地为Action中的属性注入值.注意:属性必须提供get,set方法. 配置 <acti ...

  6. 由struts2中配置使用servlet引发的思考和复习

    Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...

  7. struts2中把action中的值传递到jsp页面的例子

    例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...

  8. Struts2中配置默认Action

    1.当访问的Action不存在时,页面会显示错误信息,可以通过配置默认Action处理用户异常的操作:2.配置方法:    在struts.xml文件中的<package>下添加如下内容: ...

  9. struts2中的action访问web对象

    Struts2的Action就是一个普通的POJO对象,它和Web对象request.response.session和application没有耦合在一起,这样便于单独测试Action,那么我们在A ...

随机推荐

  1. paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]

    Haar-like矩形遍历检测窗口演示Matlab源代码 clc; clear; close all; % Haar-like特征矩形计算 board = 24 % 检测窗口宽度 num = 24 % ...

  2. MVC4中给TextBoxFor设置默认值和属性

    例如:(特别注意在设置初始值的时候 Value 中的V要大写) @Html.TextBoxFor(model => model.CustomerCode, new { Value="  ...

  3. mongo快速翻页方法(转载)

    翻阅数据是MongoDB最常见的操作之一.一个典型的场景是需要在你的用户界面中显示你的结果.如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化. 接下来,让我们通过一 ...

  4. 夺命雷公狗ThinkPHP项目之----企业网站20之网站前台头尾分离

    我们的网站直接让他头尾进行分离即可: 然后在代码里面找到id 为header的这段代码: 然后将整个div的内容都给弄出来,然后在view里面创建一个Public的目录,然后在创建一个header.h ...

  5. Unexpected error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd2 in position 69: ordinal not in range(128)-解决办法

  6. Linux/Unix中的#!和!#

    是不是在Terminal输入命令的时候,输入了很长的一个路径,然后发现还有在同一条命令中再输一次的时候很恼火,其实Shell是提供了trick的,就是使用!#(和#!不同哦) 习惯写脚本的猿,通常对于 ...

  7. linux终端使用技巧

    Shift+Ctrl+T:新建标签页Shift+Ctrl+W:关闭标签页Ctrl+PageUp:前一标签页Ctrl+PageDown:后一标签页Shift+Ctrl+PageUp:标签页左移Shift ...

  8. oracle 定时备份

    第一步.bat脚本: @echo off echo 删除10天前的备分文件和日志 forfiles /p "z:/back" /m *.dmp /d -10 /c "cm ...

  9. ctl 里面pdef解说

    WRF 模式MM5 模式都是目前从网上可以下载的气象软件,因此在国内经常可以见到.但这两种模式的数据特点数据的水平网格都不是标准的经纬度网格.需要在ctl 文件中加入PDEF 定义说明把这种非标准的数 ...

  10. 关于Win7 64位 mysql 5.7下载安装问题

    1.从官网下载mysql: 网址:http://dev.mysql.com/downloads/mysql/ 这是我们要找的,win7 64位 点击下载: 出现如图所示,我们不必要登录注册,点击红线内 ...