在Struts2中配置Action
在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的更多相关文章
- 详解struts2中配置action的方法
如何解决action太多的问题??我们因为需要不同的方法,所以往往建立很多不同的类,但是每个类中往往仅仅几行代码,不仅浪费了时间,而且配置起来也很繁琐,所以,建立一个共有的类,然后根据以下方式来操作, ...
- struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?
struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? 解答: 1)可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范set和get ...
- 在struts2中配置自定义拦截器放行多个方法
源码: 自定义的拦截器类: //自定义拦截器类:LoginInterceptor ; package com.java.action.interceptor; import javax.servlet ...
- 07. struts2中对Action的管理方式
web.xml配置文件的常用代码 <filter> <filter-name>struts2</filter-name> <filter-class>o ...
- 05. struts2中为Action属性注入值
概述 struts2为Action中的属性提供了依赖注入功能 在struts2的配置文件中,我们可以很方便地为Action中的属性注入值.注意:属性必须提供get,set方法. 配置 <acti ...
- 由struts2中配置使用servlet引发的思考和复习
Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...
- struts2中把action中的值传递到jsp页面的例子
例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...
- Struts2中配置默认Action
1.当访问的Action不存在时,页面会显示错误信息,可以通过配置默认Action处理用户异常的操作:2.配置方法: 在struts.xml文件中的<package>下添加如下内容: ...
- struts2中的action访问web对象
Struts2的Action就是一个普通的POJO对象,它和Web对象request.response.session和application没有耦合在一起,这样便于单独测试Action,那么我们在A ...
随机推荐
- 用C语言操纵Mysql
以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; ...
- linux env
.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.1 永久的:需要修改配置文件,变量永久生效. 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效. ...
- 表单和验证事件以及marquee标签
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- mysql 管理工具
摘自: http://www.chinaz.com/free/2009/0306/68691.shtml MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON ClipRegion
zw版[转发·台湾nvp系列Delphi例程]HALCON ClipRegion procedure TForm1.Button1Click(Sender: TObject);var img : HI ...
- 对OpenGL的GLFrame框架进行的扩展截至2014年11月29日
框架源自<OpenGL游戏编程>,增加了此框架的部分功能.其中有些小错误,尤其是MD2模型的那章,给出的框架只支持载入一个BOSS,当再载入一个BOSS时,就会发现两个模型的帧速会乱套. ...
- hadoop之输入输出格式
<STRONG>jobConf.setInputFormat(MyInputFormat. class ); InputFormat:</STRONG> TextInputFo ...
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转
一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...
- Maven3.x 插件开发入门
Maven工具有很多插件,各种各样的插件,让我们开发调试过程中非常方便,但是终究是有你想要的但是现目前插件不能满足的(可能性非常非常低),这个时候就需要使用其他的替代工具,或者是自己来开发一个Mave ...
- jython语言学习笔记
1.变量可以随便定义,不限制类型,不限制数值.开头空4个空格,使用def定义函数,可以嵌套,可以传参. 2.每个语句结束的时候没有分号.定义类的时候没有括号.在print语句的后面有格式转换时要加上% ...