教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

struts2框架 (自动保存的)(2)

来源:网络收集 时间:2026-09-08
导读: /validator /validators (i).fieldexpression验证器:与expression基本相同。 (j).email验证器:验证输入的数据是否为一个email地址。 (k).url验证器:用于验证输入是否为一个合法的URL。 (l).conversion验证器:验

</validator>

</validators>

(i).fieldexpression验证器:与expression基本相同。

(j).email验证器:验证输入的数据是否为一个email地址。

(k).url验证器:用于验证输入是否为一个合法的URL。

(l).conversion验证器:验输入的数据在类型转换的过程中是否没有出现错误。

(m).stringlenght验证器:验证输入的数据是否在指定的字符串长度这内。此验

证器有三个参数:minLenghtmaxLenght trim

(n).regex验证器:使用正则表达式验证输入的数据。此验证器有3个参数:

Expression:指定一个正则表达式。

caseSensitive:设置字符串是否按大小写的方式进行匹配。

trim:是否调用String类的trim()方法字符串首尾的空字符。

四》Struts2的拦截器

在用Struts2时我们发现,Struts2的Action与Servlet API进行了解耦,Action对请求的处理不依赖于Servlet API。此时的Action依赖于Struts2的拦截器,在Struts2框架中的表单提交,对象类型转换,文件上传,ModelDriven的操作,都离不开拦截器。拦截器作用与Action与Result的前前后后。Struts2的拦截器的实现思想是AOP面向切面编程,所以还可以动态的为对象植入新的功能。

下面就对Struts2拦截器的使用作一些简单的介绍:

1. 内置拦截器: Struts2框架中的拦截器配置在struts-default.xml中。可进入查看:

<interceptors>

<interceptorname="alias"class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/>

<interceptorname="chain"class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>

<interceptorname="debugging"class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor"/>

<interceptorname="fileUpload"class="org.apache.struts2.interceptor.FileUploadInterceptor"/>

<interceptorname="i18n"class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/>

<interceptorname="modelDriven"class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>

<interceptorname="prepare"class="com.opensymphony.xwork2.interceptor.PrepareInterceptor"/>

<interceptorname="servletConfig"class="org.apache.struts2.interceptor

.ServletConfigInterceptor"/>

<interceptorname="timer"class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>

<interceptorname="token"class="org.apache.struts2.interceptor.TokenInterceptor"/>

<interceptorname="validation"class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>

<interceptorname="checkbox"class="org.apache.struts2.interceptor.CheckboxInterceptor"/>

…………………………………………………

…………………………………………………… …………………………………………………

2. 拦截器的配置:在struts.xml中进行配置。

创建了一个拦截对象,需要对拦截器进行配置才可以应用到Action对象上。

其配置分为两步:

1).拦截器声明:

<interceptorname="authStack”

class="mon.interceptor.AuthorityInterceptor"/>

2).将拦截器应用到Action:

<actionname="main"class="loginAction"

method="loginSuccess">

使用<interceptor-ref>标签进行配置。 name属性用于指定所用的拦截器,与声明时的name对应。 <interceptor-ref name="authStack"/> <resulttype="dispatcher">/pages/main.jsp</result> </action> 拦截器的API:

在Struts2中无论是内置的拦截器对象还是自定义的拦截器,都需要实现包

com.opensymphony.xwork2.interceptor中的Interceptor接口。

Interceptor接口的定义如下:

public interface Interceptor extends Serializable{

Void destroy(); //用于销毁拦截器

Void init(); //用于初始化拦截器

String intercept(ActionInvocation invocation) throws Exception;//主要方法

}

只有调用了intercept()方法中invocation参数invoke()方法,才可以执行Action对象中的请求的处理方法。另处,AbstractInterceptor抽象类对Interceptor接口进行了实现。所以我们可以通过继承AbstractInterceptor对象来创建拦截器。

带有参数的拦截器

通过以上为Action配置了拦截器后,拦截器会对Action对象中的每一个业务请求都进行拦截。这样在没有必要会影响到性能,Struts2对此也给出了解办法。

MethodFilterInterceptor拦截器在AbstractInterceptor基础上进行了扩展,可以对Action中指定的方法进行拦截与排除Action对象中不需要拦截的方法。

a. 拦截指定方法:

<interceptor-ref name=”myInterceptor”>

<param name=”includeMethods”>save,update</param>

</interceptor-ref>

b. 排除指定方法:

<interceptor-ref name=”myInterceptor”>

<param name=”excludeMethods”>delete</param>

</interceptor-ref>

…… 此处隐藏:1145字,全部文档内容请下载后查看。喜欢就下载吧 ……
struts2框架 (自动保存的)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/43474.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)