Struts的类型转换与输入校验_第1页
Struts的类型转换与输入校验_第2页
Struts的类型转换与输入校验_第3页
Struts的类型转换与输入校验_第4页
Struts的类型转换与输入校验_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

企业级JAVAII

软件工程系:聂常红

cred_n@163.com内容回顾Struts2使用什么框架上传文件Struts2文件上传语法如何设置上传文件的大小及类型?国际化资源文件有什么作用?如何定义国际化资源文件?如何输出国际化消息?如何设置及替换带占位符的国际化消息?第7讲Struts2的类型转换和输入校验7.1Struts2的类型转换7.2输入校验概述7.3使用编程方式进行校验7.4使用Struts2校验框架校验7.1类型转换数据类型转换的必要Struts2内置类型转换器

Struts2内建了字符串和boolean、char、int、short、float、double等基本数据类型以及它们的包装类和Date、数组(元素为字符串)、集合(元素为字符串)等类型之间的类型转换器自定义类型转换器基于OGNL的类型转换

借助于OGNL表达式的支持,Struts2允许以另一种简单方式将请求参数转换成复合类型基于OGNL的类型转换示例login.jsp:welcome.jsp:OGNL表达式类型转换中的错误处理Struts2在执行类型转换出现错误时,将由conversionError拦截器负责将对应错误封装成字段级别错误(FieldError),并将它们放入到ActionContext中conversionError拦截器处理类型转换异常后,系统会跳转到名为input的逻辑视图默认的字段级别错误显示:Invalidfieldvalueforfield“XXX”.(XXX为字段名)7.2输入校验概述输入校验是指在数据提交给程序之前,对输入数据的合法性进行检查,只允许合法的数据进入应用程序。输入校验类型:客户端校验:通过在HTML页面中的JavaScript来校验,方式:自定义脚本或使用Struts2框架自带的客户端校验机制(设置form的validate属性为true即可)服务端校验:通过后台加入检验代码实现7.3使用编程方式进行校验在action类可以通过编程方式实现输入校验,根据校验代码的位置,又可分为以下两种:使用业务逻辑处理方法校验使用validate或validateXxx方法校验“Xxx”对应某个业务逻辑处理方法名;存在validateXxx方法时,会首先执行validateXxx方法,然后再执行validate方法;如果该动作的父类同样定义了这些方法,则首先执行父类validateXxx方法,然后父类validate方法,然后按上面所述顺序执行子类的验证方法使用业务逻辑处理方法校验:该方法是将校验代码放到动作类的业务逻辑处理方法如execute()中,如下所示:缺点:1)校验代码和业务逻辑代码混合,程序的可读性差,增加维护难度2)必须显式指明出错时的结果使用validate或validateXxx方法校验将校验代码放到validate()中,即重写ActionSupport类的validate(),或放到自定义的validateXxx(),如下所示:优点:1)校验代码和业务逻辑代码分开,程序的可读性和维护性都较好2)校验出错,自动跳转到input结果缺点:当校验代码比较多时,会使得validate()程序很臃肿,对管理和维护增加难度7.4使用Struts2校验框架校验该方式是指将校验代码从action代码中剥离出来,以声明的方式放到XML配置文件中,从而简化了action代码。使用校验框架校验语法:必须定义一个与动作类同名、保存在同一目录下的且后缀为-validation.xml的XML校验配置文件,如动作类名为ValidateAction,则该XML文件名为ValidateAction-validation.xml必须在XML校验配置文件中对每个校验字段配置校验器对所有的业务方法有效。针对于某个业务方法的校验XML命名方法为:动作类名-动作名-validation.xml,此时搜索顺序是:动作类名-validation.xml、动作类名-动作名-validation.xml常用的struts2校验器:required:

不允许非字符串数据空值requiredstring:

必须是字符串且不能为空stringlength:

字符串长度检验器,可以定义字符串的范围,常用参数:minLength、maxLengthint:

必须是整数,可以定义整数的范围,常用参数:min、maxdate:

必须是日期,可以定义日期范围,常用参数:min、maxdouble:

必须是双精度数,可以定义小数的范围,常用参数:min、maxfieldexpression:对指定的OGNL表达式求值email:

必须符合邮件书写格式url:

必须符合网址书写格式regex:

格式检验器,必须符合指定的书写格式Struts2校验器的配置方式有两种:字段型校验器的配置方式,书写格式:非字段型校验器的配置方式:书写格式<fieldname=“待校验字段名称”><field-validatortype=“校验器名称”><paramname=“参数名”>参数值</param><message>校验失败的提示信息</message><!--<messagekey=“key”/>--></field-validator></field><validatortype=“校验器名称”><paramname=“fieldName”>待校验字段名称</param><paramname=“参数名”>参数值</param><message>校验失败的提示信息</message></validator>字段型校验器配置说明:validators:根标签,用于包含所有需检验的字段标签field:字段标签,使用name属性来指定需校验的字段field-validator:字段校验器标签,通过type属性指定校验器来定义校验机制param:用于定义校验字段的参数,包含在field-validator标签中(可选)message:定义校验失败时的提示信息(自定义或来自于资源文件),包含在field-validator标签中,且放在param标签后面使用字段校验器校验输入数据示例:步骤:创建Struts2项目创建动作类RegisterAction创建RegisterAction-validation.xml文件,定义每个表单域的检验机制编写资源文件RegisterAperties,在其中添加一些数据类型转换出错提示信息和校验出错提示信息创建两个JSP页面,分别用于信息输入和信息显示,保存目录为WebRoot设置配置文件,在其中定义动作包和动作创建动作类:创建RegisterAction-validation.xml:(接前)(接前)编写RegisterAperties创建输入信息的validateInput.jsp:创建显示信息的validateOutput.jsp:设置配置文件:执行结果:○Struts2输入校验的步骤请求参数执行类型转换校验框架校验数据有效性类型转换是否出错?执行validateXxxx()执行validate()是否包含FieldError?将错误提示信息保存Ac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论