文档库 最新最全的文档下载
当前位置:文档库 › Struts2 校验(XML配置校验)

Struts2 校验(XML配置校验)

Struts2 校验(XML配置校验)
Struts2 校验(XML配置校验)

基本说明:

Struts校验可以分为两种类型:Annotation型,XML配置型

Annotation型主要使用Annotation来配置Action中的属性,这里我们做过多的介绍,需要看的请参看我的其他相关文章。XML配置型主要是指,使用XML来描述配置信息,之后提供给Struts框架做校验。使用Struts2,XML配置型的校验可以使用三种方式:普通的服务器端校验方式,客户纯JavaScript方式端校验,和Ajax方式的校验。

普通的服务器端校验方式:

客户端提交信息到服务器,在服务器上使用XML配置信息,校验客户端提交的信息,错误的情况下,返回input页面,显示校验错误信息。

客户端纯JavaScript校验方式:

在输入画面上,根据XML文件中的配置内容生成对应的JavaScript校验脚本,在提交数据的时候首先使用这些生成的JavaScript校验输入信息,错误情况下在画面上显示错误信息,不需要向服务器提交内容,只有输入数据校验正确的情况下才向服务器提交请求。这种方式的校验不支持所有Struts2内置的校验,只支持一部分校验:

required validator

requiredstring validator

stringlength validator

regex validator

email validator

url validator

int validator

double validator

Ajax方式校验

在提交请求的时候,首先使用AJAX的方式将数据提交到服务器,在校验出错的情况下在页面显示错误信息,但是不刷新页面,在校验成功的情况下,才向服务器提交请求。

三种方式比较

说明:struts-dojo-plugin在2.1.0的时候可能会Release。现在使用需要从Subversion中去除2.1.0SNAPSHOT代码:

svn https://www.wendangku.net/doc/e413293585.html,/repos/asf/struts/struts2/trunk 代码示例

// QuizAction 类

特别说明(Ajax Validation):

为什么使用AJAX 校验?

纯的JavaScript校验不刷新页面,但是也不能使用所有的Struts2校验方法;服务端校验可以使用所有Struts2的校验方法,但是需要刷新页面。

Struts2 Ajax校验,既不需要刷新页面,又可以使用Struts2内置的所有的校验方法,所以我们比较倾向于使用Ajax校验。

现在(2007/09/08)Struts2的最新版本为2.0.9,还不支持dojo-plugin,所以还没有办法使用Ajax校验。所以要想使用Ajax Validation必须使用

Struts2.1.0 SNAPSHOT版本。

Struts2配置文件通配符的使用说明

Struts2配置文件中使用通配符收藏 形式一:调用相同Action中的不同方法 /login.jsp /error.jsp /welcome.jsp 其中表达式{1}的值name属性值中第一个*的值。 如果用户请求的URL为loginAction.action,则调用Jcuckoo.LoginRegistAction中的login方法; 如果用户请求的URL为registerAction.action,则调用Jcuckoo.LoginRegistAction中的register方法;形式二:通过匹配,调用不同的Action的execute方法 /login.jsp /error.jsp /welcome.jsp 上面没有出现method属性,故默认调用对应的execute方法 如果用户请求的URL为LoginAction.action,则调用Jcuckoo.LoginAction中的execute方法; 如果用户请求的URL为RegisterAction.action,则调用Jcuckoo.RegisterAction中的execute方法; 形式三:动态结果 /input.jsp /{1}.jsp 当处理结果是input时,会转到/input.jsp页面

Struts2之输入校验

一、Struts2输入校验介绍 Struts2的输入校验和类型转换都是对请求参数进行处理。 输入校验顾名思义就是请求参数是否能够满足一定的要求; 客户端校验&服务器端校验 客户端校验是指在浏览器这端通过Javascript进行初步校验,为了减轻服务器端的负载;服务器端校验是校验数据的最后一道防线; 在Struts2中,数据校验不需要写任何代码,只需要一个配置文件,配置校验的条件就可以了,非常简单;因此数据校验文件是数据校验的最重要的内容; 二、数据校验规则文件 1.数据校验规则文件规则: 1.此文件中规定了参数的一些校验条件; 2.可以包括字段型校验器和非字段型校验器; 3.命名规则:ActionName-validation.xml,其中ActionName是Action类的名字; 4.每个Action都有一个validation文件,规则文件放在和Action同目录下; 5.在前面我们讲到的配置逻辑action中,如果需要对某个逻辑Action配置数据校验文件,则命名规则为:ActionName-LogicActionName-validation.xml; 6.注意:当需要对逻辑action进行校验时,如果存在一般形式的ActionName-validaton.xml 文件,则也会对此逻辑Action进行校验; 7.输入校验失败后,和类型转换一样,会将错误封装成fieldError,并放入Action Context 中,因此在JSP中添加可显示错误,此内容也是我们在数据校验文件中配置的; 8.当输入校验失败后,和类型转换一样,返回逻辑视图为input,因此在struts.xml中必须配 9.输入校验失败后,struts表单标签也会自动输出错误提示; 字段型校验器&非字段型校验器 字段型校验器:以每个Action属性为一个单位进行编写,即以如下风格编写:

关于生成AMBA ip core的GRLIB使用笔记2(哥,断奶了)

本文源于哥,断奶了在学习中做的笔记,希望分享后大家一起学习讨论。 2013/5/17 一.GRlib的使用 首先在designs下建立一个工程文件design_one,你可以把你所需要的器件类型design 内的文件复制到这个文件里,例如我要做一个V5的project,那么就可以把leon3-gr-pci-xc5v 这个文件里的文件复制到design_one里面。 然后进入虚拟机,用终端打开design_one文件,执行命令make xgrlib,打开如下界面。 1.红色区域 首先来看Simulation,这个GRlib提供了包括Modelsim、 Nasim(一位台湾人写的加工程序仿真软件)和一些其他公司 提供的仿真工具(我对着些仿真工具也不是太了解,因为只 做过Altera和Xilinx的FPGA,所以只对他们自带的仿真工 具和Modelsim比较了解,而且我们后面的实例只用到 Modelsim。)选择所需要的仿真工具,如果在Linux下安装 了Modelsim的话,在这里可以run Modelsim。如果没有也 没关系,他会在共享的工程文件中生成工程文件,这样你就 可以在Linux外部打开这个project。 其他连个选项也是一样的道理、,但是现在AMBA总线还没有设置参数,所以在这里先不要管它,我只是把第一个界面的选项先介绍一下。

2.蓝色区域 这个区域包括器件类型、项目名称、状态显示。在状态显示里面我们可以看到生成的文件和一些GRlib在做什么操作。 3.紫色区域 prog prom:下载FPGA的prom。 Xconfig:启动配置工具。 Clean:撤销所有设置。 Scripts:产生工程脚本文件。 Distclean:移除所有产生的文件。 Quit:退出程序。 二.Xconfig工具 Xconfig启动配置工具后,我们就可以对工程进行编辑了,如图: 1.synthesis设置 Target technology(目标技术):Xlinx-Virtex为memory and pads选择目标器件,它包含XLINX、Altera的大多数器件。

最新版本Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤

SSH框架搭建 Struts2.3.12+Spring3.2.2+Hibernate4.2.0 编号:SSH-S2-S3-H4 版本:V1.1 级别:公开 编写时间:2013-03-18

目录 1 导言 (1) 1.1 目的 (1) 1.2 范围 (1) 1.3 说明 (1) 2 搭建Struts2 (2) 2.1 搭建所需jar包 (2) 2.2 整合步骤 (2) 2.2.1 创建项目 (2) 2.2.2 导入jar包 (2) 2.2.3 配置web.xml (4) 2.2.4 创建web (4) 2.2.5 创建jsp页面 (5) 2.2.6 配置struts.xml (6) 2.2.7 配置Tomcat (6) 2.2.8 部署项目 (7) 2.3 测试 (8) 2.3.1 启动Tomcat (10) 2.3.2 测试Tomcat (10) 2.3.3 测试Struts (11) 3 整合Spring3 (12) 3.1 整合所需jar包 (12) 3.2 整合步骤 (12) 3.2.1 导入jar包 (12) 3.2.2 配置web.xml (12) 3.2.3 配置struts.xml (13) 3.2.4 配置spring.xml (13) 3.3 测试 (14)

3.3.1 启动Tomcat (14) 3.3.2 测试登录 (14) 4 整合Hibernate4 (15) 4.1 整合所需jar包 (15) 4.2 整合步骤 (15) 4.2.1 导入jar包 (15) 4.2.2 创建数据库ccc (15) 4.2.3 创建对象User (16) 4.2.4 生成映射文件User.hbm.xml (17) 4.2.5 创建dao (18) 4.2.6 创建service (19) 4.2.7 创建web (20) 4.2.8 配置jdbc.properties (21) 4.2.9 配置db.xml (22) 4.2.10 配置spring.xml (24) 4.2.11 配置struts.xml (24) 4.3 测试 (25) 4.3.1 启动Tomcat (25) 4.3.2 测试登录 (25)

AMBA总线详细介绍

AMBA总线介绍 AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。AHB AHB=Advanced High Performance Bus,译作高级高性能总线。如同USB (Universal Serial Bus)一样,也是一种总线接口。 特性: 突发连续传输 分步传输 单周期内主控制器处理 单时钟边沿操作 非三态操作 支持64位,128位总线 AHB主要用于高性能模块(如CPU、高速RAM、Nand Flash DMA和DSP等)之间的连接,如图一所示。 作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如图二所示

AHB主控制器:主控制器可以通过地址和控制信息,可以进行初始化,读,写操作。在同一时间,总线上只能有一个主控制器。 AHB从设备:从设备通常是指在其地址空间内,响应主控制器发出的读写控制操作的被动设备。通过操作的成功与否反馈给其主控制器,完成数据的传输控制。 AHB仲裁器:仲裁器根据用户的配置,确保在总线上同一时间只有一个主控制器拥有总线控制权限。AHB总线上只能有一个仲裁器。 AHB译码器:译码器解析在总线上传输的地址和控制信息。AHB总线上只能有一个译码器。

struts2拦截器配置详解

Struts2拦截器详细配置过程 1:所有拦截器的超级接口Interceptor,拦截器去实现这个接口; Interceptor它其中有三个方法 (init(),destroy(),interceptor()):Init()方法:在服务器起动的时候加载一次,并且只加载一次; Destroy()方法:当拦截器销毁时执行的方法; Interceptor()方法:其中里边有一个参数invocation public String intercept(ActionInvocation invocation)throws xception { System.out.println("interceptor!!"); String result=invocation.invoke(); return result; }Invocation.invoke()是如果只有一个拦截器执行完这个方法后,会返回给视图,如果有多 个拦截器,它顺序的执行完所有的拦截器,才返回给视图. 2:可以在系统初始化中给拦截器指定默认的参数(也包括了定义拦截器方式)如下:在拦截器类中把hello当做属性set/get方式注入到拦截器类中;

张钊钊 也可以在使用拦截器的时候给它设置参数: 就是在一个action的reslut下面配置上如下: 参数值 .................... 校验失败后的提示信息 非字段校验器配置格式:

需要被校验的字段 参数值 校验失败后的提示信息 非字段校验:先指定校验器:由谁来校验,来校验谁! 字段校验器:先指定校验的属性:我来校验谁,由谁来校验! 下面是对应在包中的类:

grlib说明文档中文版

5GRLIB design concept 5.1introduction GRLIB是一个可重用IP Core的集合,并分成了多个VHDL库。每一个库提供了特定厂商的元件或者一系列共享的功能或接口。在GRLIB设计中使用的数据结构和元件声明都是通过库指定的VHDL包来输出的。 GRLIB是基于AMBA AHB和APB片上总线的,并把该总线用作标准的互联接口。AHB/APB总线的实现是与AMBA-2.0相兼容的,并附加了额外的“sideband”(边带)信号。这些边带信号的有三个用途:automatic address decoding,interrupt steering和device identification(a.k.a plug&play support)。根据AHB/APB 信号的功能,GRLIB的库把这些信号以VHDL records的形式组合在一起。GRLIB AMBA包的源文件在lib/grlib/amba/下。 所有的GRLIB core都使用同样的data structures来声明AMBA接口,这样相互之间的连接就很容易了。GRLIB库还包含了一个AHB bus controller和一个AHB/APB bridge,借助这两个模块,可以很快组装成一个全功能的AHB/APB的系统。 下面的部分将描述AMBA总线是怎么实现的以及怎样用GRLIB来建一个SOC设计。 5.2AMAB AHB on-chip bus 5.2.1General(概述) AMBA Advanced High-performance Bus(AHB)是一个multi-master的总线,可以以high data rate and/or variable latency的形式来互连各单元。图5就是一个概念图。图中连在总线上的单元分为masters(主)和slaves(客),并都受一个全局的总线仲裁器(global bus arbiter)控制。 由于AHB总线是复用的(而不是三态的),更正确的总线与单元互连示图可以参考图6。每一个master驱

2struts2中常用的配置文件及result返回类型

1.web.xml文件 主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml 配置文件,还有的会影响struts框架的行为。除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。 2.struts.xml文件 框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。这也是我们要配置的主要文件 3.struts.properties(参default.properties) 在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。要改变这些属性,只需在struts.properties文件中指定属性的key和value即可。属性文件可以放在任何一个包含在classpath中的路径上,但是

通常我们都把它放在/WEB-INF/classes目录下面。我们可以在struts-default.properties文件中找到一个属性的列表。 4.struts-default.xml 此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过),并为我们提供了一些标准的配置。我们可以在struts2-core.jar中找到这个文件。 5.其它配置文件 velocity.properties,struts-default.vm,struts-plugin.xml struts.xml文件的配置 Struts2的核心配置文件,由程序员开发编写,包含Action、result 等配置信息,主要负责管理Struts2框架的业务控制器Action。在开发中,当修改一些配置时总是不能及时地更新到服务器,我们总会重新部署或重启来更新改变的内容,在struts2中可以通过一个常量来达到此目的。即在struts.xml中的元素下增加如下内容:这样配置后,当配置文件修改保存时就会及时更新到服务器中。

struts2复习题(含答案)

Struts2复习题 1.以下属于struts2的控制器组件是: A.Action B.ActionForm C.ActionServlet D.dispatchAction 2.以下属于struts2的体系结构的是:(多选) A.struts2控制器组件 B.struts2配置文件 C.FilterDispathcer D.Action 3.以下属于struts2配置文件中的配置元素是:(多选) A. B. C. D. 4.关于struts1和struts2对比的说法正确的是: A.struts1要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类 B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的 C.struts1和struts2中都使用ActionForm对象封装用户的请求数据 D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值 5.以下关于ValueStack说法正确的是:(多选) A.每个Action对象实例拥有一个ValueStack对象 B.每个Action对象实例拥有多个ValueStack对象 C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中 D.ValueStack会在请求开始时被创建,请求结束时消亡 6.关于struts2配置文件说法正确的是: A.必须在WEB-INF/classes目录下 B.名字必须为struts.xml C.配置Action时,必须配置包信息 D.使用元素配置转发 7.在struts2配置中用()元素来配置常量: A. B. C. D. 8.关于struts2包的说法正确的是: A.struts2框架使用包来管理常量 B.struts2框架定义包时必须指定name属性 C.struts2框架中配置包时,必须继承自struts-default包,否则会报错 D.struts2框架中使用包来管理Action 9.struts2中获取Servlet API的方法正确的是:(多选) A.使用ActionContext对象以解耦合的方法访问Servlet API B.使用ServletActionContext对象以解耦合的方式访问Servlet API C.使用ActionContext对象以耦合的方式访问Servlet API D.使用ServletActionContext对象以耦合的方式访问Servlet API 10.struts2动态调用的格式为: A.ActionName?methodName.action B.ActionName! methodName.action C.ActionName*methodName.action D.ActionName@mathodName.action 11.如果要实现struts2的数据校验功能 A.普通Action类可以实现

02-Struts2的工作流程及配置文件

Struts2的工作流程及配置文件--- https://www.wendangku.net/doc/e413293585.html, --- Struts2.0的流程图

从图中看到Struts2的工作流程如下: 1.服务器接收到的请求首先经过一组过滤器链(实际中的其他过滤器可能还包括诸如Spring 的字符过滤器CharactorEncodingFilter、V elocity的过滤器等,一般FilterDispatcher位于过滤器的最后一个执行),过滤器链按照你在web.xml中的配置顺序在接收客户请求时顺序执行,在向客户发送响应时反序执行,Struts2的核心FilterDispatcher在web.xml中的配置如下: setCharactor org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 struts2 org.apache.struts2.dispatcher.FilterDispatcher setCharactor /* struts2 /* 注意:如果你使用的是W ebLogic6.1作为应用服务器,需要使用FilterDispatcherCompatW eblogic61替代FilterDispatcher。 2.请求被送到FilterDispatcher之后,FilterDispatcher会通过其私有静态的属性ActionMapper 询问这个请求是否需要调用Action处理,如果需要调用Action,FilterDispatcher会把请求委托给ActionProxy,ActionProxy调用ActionInvocation查找配置文件中该Action的所有信息,并以这个Action为目标创建代理对象(因为Struts2中的Action由于XWork的设计理念,并没有与Servlet的API被调用,所以如果直接调用Action的实例,那么显然基于HTTP 的请求都将无法传入Action。Struts2通过创建Action的代理对象,并使用拦截器将HTTP 的请求信息传入代理对象,这是典型的AOP处理方式,这也实现了控制器与Servlet的API 的分离,这是Struts1.x所欠缺的优秀的设计方式),然后执行该Action之前的所配置的所有拦截器,与过滤器相同,在接受请求时,会顺序执行你在配置文件中为该Action配置的拦截器顺序; 3.在穿越拦截器之后,就会执行Action,当Action执行完毕,ActionInvocation就要使用result

最详细eclipse配置struts2

第一章lectery的学习笔记 1.1Eclipse下搭建Struts2开发环境 博客分类: Java EclipseTomcatJSPStrutsJDK 作者:bukebushuo 来源:https://www.wendangku.net/doc/e413293585.html,/bukebushuo/archive/2007/03/29/1545728.aspx 最近下载了最新的struts 2.06,在使用其中附带的例子时,在配置上遇到了一些问题。 经过很多次的努力后,终于配置成功。现在把配置过程写出来供大家参考! 一软件:1 Eclipse+lomboz 3.2 下载地址: https://www.wendangku.net/doc/e413293585.html,/project/showfiles.php?group_id=97&release_id= 1864(网页) https://www.wendangku.net/doc/e413293585.html,/project/download.php?group_id=97&file_id=7714(文件),不保证一直有效。 2 Tomcat 5.5 下载地址:https://www.wendangku.net/doc/e413293585.html,/download-55.cgi https://www.wendangku.net/doc/e413293585.html,/mirrors/apache/tomcat/tomcat-5/v5.5.23/bin/apache -tomcat-5.5.23.zip 3 JDK 6 下载地址:https://www.wendangku.net/doc/e413293585.html,/javase/downloads/index.jsp 4 Struts2.06

下载地址:https://www.wendangku.net/doc/e413293585.html,/download.cgi#struts201 二安装: 1 安装JDK6,按照自己喜欢的安装即可。JDK一定要在Eclipse之前安装,因为Eclipse的启动需要JDK。 2 安装Tomcat,我下载的Tomcat是直接解压缩版的,解压缩后拷贝到一个地方就可以了,拷贝后需要注意的是需要把JDK6目录中的 tools.jar拷贝到Tomcat中具体是JDK的lib目录下的tools.jar拷贝到Tomcat下common\lib中。 3 安装Eclipse,重点来了,解压缩下载的lomboz,应该得到一个eclipse目录,把这个目录拷贝到一个比较容易找的地方。 解压缩的时候需要注意,在解压缩过程中可能遇到文件路径过长的问题,我的解决方法是把下载下来的压缩包名重命名为1.zip,也就是尽量缩短文件名长度。然后解压缩的时候直接解压缩到某个硬盘的根目录下,解压缩完后再拷贝到自己想要的地方。 4, 解压缩Struts2.06,把下载下来的Struts2.06压缩包解压缩到一个目录中在他的APPS目录下有几个.war文件。 可以使用WINRAR打开,这里我们仅仅使用winrar把struts2-blank-2.0.6.war文件解压缩到本目录中就可以了。 三、配置 1:配置工作目录 第一次打开Eclipse时会要求你指定你的工作目录,请选择好你的工作目录,今后你的Eclipse的相关项目的配置就放在这个目录里。 2:配置JREs 打开配置对话框

struts2 实验报告

1.系统分析与设计 1.1 系统功能描述 本系统是个非常简单的注册、登录系统。本系统的实现是基于Struts2、Spring、Hibernate 三个框架,系统功能单一,业务逻辑简单。 当用户注册信用户时,就是向系统中增加一个新用户,对应的数据库增加一条记录。 当用户输入注册信息时,系统提供了基本的输入验证判断用户输入是否合法,只有当用户输入满足基本输入要求时,才会被提交到实际的登录系统,进行实际的登录处理。 系统还使用了随机产生的图形验证码来防止刷新,防止用户通过单击浏览器的书安心按钮来重复注册多个用户。 系统还提供了一种Ajax方式来验证用户输入的注册名是否有效,系统要求所有的用户名不能重复。故当用户输完用户名后,系统立即在页面上方提示用户该用户名是否可用,如果系统中没有该用户名,则系统提示该用户名可用;否则提示用户该用户名重复,用户必须重新选择用户名注册。 当用户注册一个新用户名之后,就可以使用系统的登录功能来登录系统了,用户输入登录用的用户名、密码后,系统一样提供了基本的输入校验。 除此之外,系统还采用了随机产生图形验证码来防止恶意用户的暴力破解,系统随机生成一个图形验证码,而用户登录必须输入图形验证码中显示的字符串,只有用户输入的字符串和系统随机生成的验证码字符相同时,系统才允许用户登录。 1.2 系统功能流程

1.3 数据库设计 相关的映射文件: 一旦提供了上面的映射文件,Hibernate 就可以理解User 和user_table 之间的对应关系。 2.系统实现与测试 2.1 系统采用的关键技术 MVC 框架采用了Struts2框架,Struts2框架的易用性,极好的简化了系统的MVC 层的实现;本系统使用了Struts2的JSON 插件来完成Ajax 功能,除此之外本系统为了避免进行底层的Ajax 交互,还是用了一个简单Prototype.js 函数库,用以简化Ajax 编程。Struts2框架的稳定性,为系统的稳定运行提供了保证。

Struts2配置Result

配置Result 一个result代表了一个可能的输出。当一个Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出。 Results配置由两部分组成:一部分是result映射,另一部分是result类型。 1.结果映射 在struts.xml文件中,使用result元素来配置result映射。result元素有两个可选的属性: 在Struts2中允许定义一个默认的Result类型,这是通过result-type元素来定义的。在框架的默认配置文件struts-default.xml中,在struts-default.xml包中有如下的一个配置: result-type元素的default属性指定名为dispatcher的结果类型, dispatcher结果类型使用ServletAPI中的ResultDispatcher将请求导向到目 标资源(通常是JSP页面)。如果在使用result元素配置result映射时,没有使用 type类型,那么框架就将使用默认的dispatcher类型。 由于Struts2中的包是可以继承的,所以我们定义的package只要继承了 struts-default包,因此也继承了默认的结果类型,所以可以省略result元素的 type属性。 如果没有指定result元素的name属性,那么框架将把它命名为”success”。 2.结果类型 在框架调用Action对请求进行处理之后,就要向用户呈现一个结果视图,Struts2支持多种类型的视图,这些视图是由不同的结果类型来管理的。 一个结果类型就是实现了com.opensymphony.xwork2.Result接口的类,在Struts2中定义了多种结果类型,如下表所示:

Struts2校验器类型

Struts2校验器类型 10.3 验证器类型 可以把验证器类型分为两种:字段验证器和动作验证器。其中,字段验证器就像前面演示的那样,只验证提交的表单内的单个字段;而动作验证器一般验证提交的表单内的多个字段的关系,比如,录入产品信息的时候,产品的进价不能高于售价。 无论是哪种验证器,都需要考虑以下几个问题: ?验证谁? ?使用什么条件验证? ?不满足条件显示什么结果? ?不满足验证条件时显示的结果出现在页面的什么位置? 10.3.1字段验证器 字段验证器用来验证提交的表单内的单个字段,如同前面的示例,在验证文件里: java代码: 查看复制到剪贴板打印 1. 2. 3. 4. 18 5. 年龄必须在18岁以上,您输入的是${user.age} 6. 7. 8. ?元素作为整个验证文件的根元素。 ?元素的子元素就是字段验证器,元素的name属性就是这个字段验证器要验证的哪个字段。 ?一个元素可以有多个元素。 ?每一个元素是对这个字段的一种验证条件,它的type属性就是具体的验证器,在这里引用了内置的int验证器。 ?还可以给元素添加子元素来设置验证条件的参数,添加子元素来设置验证错误时返回的信息。在元素中写出的文本将直接作为错误信息返回,如果元素存在key属性,它将引用国际化信息。 除了以上的这种写法,还有另外一种注册的方式,虽然写出来的xml配置不同,但是所需要的参数,以及运行时所起的作用都和以上的写法一模一样: java代码: 查看复制到剪贴板打印 1.

struts2教程(完全版)

Yaio 4 一、准备工作及实例 4 1.解压struts- 2.1.6-all.zip 4 2.六个基本包 4 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 5 (5)其它配置文件 5 4.让MyEclipse提示xml信息 5 5.如何使用alt+/提示 5 6.实例 5 7.开启struts2自带的开发模式常量 7 8.vo传参模式 8 9.ModerDriven传参模式(不建议采用) 8 10.为什么要使用struts2代替struts1.x 9

二、struts.xml配置及例程 9 1.配置文件的优先级 9 2.配置形式 9 3.package配置相关 10 4.分工合作include:指定多个配置文件 12 5.tomcat认证访问 12 6.初识拦截器 13 7.Action中的method属性 15 8.使用ForwardAction实现页面屏蔽。 17 8.使用default-Action配置统一访问 17 小结Action 18 9.使用通配符 18 10.使用0配置:ZERO Annotation 19 11.Result配置详解 19 12.异常处理 24 三、在Action获取Scope对象 25 方式一、与Servlet解耦合的非IOC方式 25

方式二、与Servlet解耦合的IOC方式 27 方式三、与Servlet耦合的非IOC方式 27 方式四、与Servlet耦合的IOC方式 28 四、OGNL与ValueStack(VS) 29 1.值栈入门 29 2.OGNL入门 31 3.普通方法访问 31 4.静态方法访问 31 5.默认类Math的访问 32 6.调用普通类的构造方法 32 7.集合对象初步 32 8.集合对象进阶 33 9.N语法top语法 34 10.获取Stack Context中的信息 35 11.总结$ # %的区别 35 12.总结OGNL[重点] 35 五、拦截器 36

什么是AMBA片上总线

什么是AMBA片上总线 [ 2006-6-26 15:14:32 | By: MCUBLOG ] 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus) 系统总线和APB(Advanced Peripheral Bus)外围总线。 AMBA片上总线 AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。 APB总线介绍 基于AMBA的片上系统 一个典型的基于AMBA总线的系统框图如图3所示。

大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM 公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。 =========================================================== ====== =========================================================== ======

相关文档