ImageVerifierCode 换一换
格式:PPT , 页数:163 ,大小:1.20MB ,
文档编号:7864047      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7864047.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《基于JavaEE的电子商务网站建设》课件第6章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《基于JavaEE的电子商务网站建设》课件第6章.ppt

1、第6章Struts2类型转换与数据验证第 6 章Struts2 类型转换与数据验证6.1 注册功能的初步实现注册功能的初步实现6.2 Struts2的数据类型转换的数据类型转换 6.3 Struts2的数据验证的数据验证 第6章Struts2类型转换与数据验证6.1 注册功能的初步实现注册功能的初步实现1.注册页面和提交成功页面以下Struts2标签实现注册表单提交和显示功能。注册信息包括六个表单域:用户名(username)、密码(password)、重复密码(repassword)、年龄(age)、出生年月(birthday)、电子邮件字段(email)。第6章Struts2类型转换与数据

2、验证新建register.jsp文件,注意文件的放置目录为ch05/WebRoot。代码如下:第6章Struts2类型转换与数据验证 第6章Struts2类型转换与数据验证新建registerok.jsp,代码如下 username:password:age:birthday:email:第6章Struts2类型转换与数据验证以上两个文件的运行界面分别如图6-1和图6-2所示。由于尚未配置Struts2控制器,注册响应界面无值传入,所以运行界面如图6-2所示。图6-1 注册表单页面 第6章Struts2类型转换与数据验证图6-2 注册响应页面 第6章Struts2类型转换与数据验证2.Regi

3、sterAction控制器类的完成【步骤1】建立控制器类com.action.RegisterAction.java。在ch05工程的src目录下,右键单击【New】的【Class】子菜单,在打开的如图6-3所示的页面中填写相关信息,新建com.action包中的Action文件RegisterAction.java,并继承ActionSupport类。第6章Struts2类型转换与数据验证图6-3 新建控制器类第6章Struts2类型转换与数据验证【步骤2】完成RegisterAction.java代码。在新建的RegisterAction.java文件中完成如下代码:package com

4、.action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class RegisterAction extends ActionSupport private String username;private String password;private String repassword;private int age;第6章Struts2类型转换与数据验证 private Date birthday;private String email;public String getUsern

5、ame()return username;public void setUsername(String username)this.username=username;public String getPassword()return password;public void setPassword(String password)this.password=password;第6章Struts2类型转换与数据验证public String getRepassword()return repassword;public void setRepassword(String repassword)

6、this.repassword=repassword;public int getAge()return age;public void setAge(int age)this.age=age;public Date getBirthday()return birthday;第6章Struts2类型转换与数据验证 public void setBirthday(Date birthday)this.birthday=birthday;public String getEmail()return email;public void setEmail(String email)this.email

7、=email;public String execute()throws Exception return SUCCESS;第6章Struts2类型转换与数据验证3.struts.xml的配置打开第5章建立的struts.xml文件,在package标签中添加以下代码:/register.jsp /registerok.jsp第6章Struts2类型转换与数据验证4.运行结果完成配置后可以运行本项目。部署好后,启动服务器,在IE中输入地址http:/localhost/ch05/register.jsp,将显示如图6-4所示的界面,填好信息后点击【Submit】按钮,即可进入图6-5所示的界面

8、。注意,此时地址栏的名字为http:/localhost/ch05/registerAction.action,但界面内容却是registerok.jsp,说明struts.xml配置成功。第6章Struts2类型转换与数据验证图6-4 运行输入界面 第6章Struts2类型转换与数据验证图6-5 提交转入页面 第6章Struts2类型转换与数据验证 6.2 Struts2的数据类型转换的数据类型转换6.2.1 Struts2中数据类型转换的处理中数据类型转换的处理1.内置的类型转换器Struts2内置的类型转换器支持大多数常用数据类型的转换,因此,这些类型在开发过程中不用处理类型转换。如6.

9、1节中RegisterAction.java中的age和birthday都不是String类型,但系统都会对它们自动转换类型。第6章Struts2类型转换与数据验证Struts2内置的类型转换器可以处理以下类型:布尔型:boolean/Boolean;字符型:char/Character;数值型:int/Integer、long/Long、float/Float、double/Double;日期型:Date,采用用户请求所在Locale的SHORT格式处理;数组:array,按具体数组元素转换;集合:collection,默认集合元素为String类型,把所有字符串封装在ArrayList中。

10、第6章Struts2类型转换与数据验证2.OGNL机制Struts2借助OGNL表达式的支持,允许将参数转换成复合类型对象。举例,把6.1节的注册代码重写如下:【步骤1】视图界面。register1.jsp代码:第6章Struts2类型转换与数据验证 第6章Struts2类型转换与数据验证 registerok1.jsp代码:第6章Struts2类型转换与数据验证 username:password:age:birthday:email:第6章Struts2类型转换与数据验证【步骤2】完成action。com.bean.User.java代码:package com.bean;import j

11、ava.util.Date;public class User private String username;private String password;private String repassword;private int age;private Date birthday;private String email;第6章Struts2类型转换与数据验证/省略get/set方法com.action.RegisterAction1.java代码:package com.action;import com.bean.User;import com.opensymphony.xwork2

12、.ActionSupport;public class RegisterAction1 extends ActionSupport private User user;public User getUser()return user;第6章Struts2类型转换与数据验证 public void setUser(User user)this.user=user;public String execute()throws Exception return SUCCESS;第6章Struts2类型转换与数据验证【步骤3】struts.xml配置。增加如下代码:/register1.jsp /reg

13、isterok1.jsp 第6章Struts2类型转换与数据验证在以上示例中,把所有注册属性都封装到了User.java类中,而在RegisterAction1.java中把User对象类型作为属性类型。对于这样的对象类型转换,Struts2提供的OGNL表达式允许开发者无需任何特殊处理就可以转换,只要像register1.jsp和registerok1.jsp代码中的黑体部分那样,在定义表单域时使用合法的OGNL表达式即可,如user.name、user.age。第6章Struts2类型转换与数据验证3.集合的转换为了让Struts2了解集合属性中元素的类型,有以下两种方式可以使用:使用泛型

14、技术来直接指定集合元素类型(推荐使用);通过Action的局部类型转换文件(详见6.2.2节)指定集合元素类型。这部分内容将在下节详述,可以将email改变为拥有多个值的集合的处理。第6章Struts2类型转换与数据验证6.2.2 自定义的类型转换器自定义的类型转换器如果内置的类型转换器不能满足用户的Web应用需求,那么Struts2也提供了自己开发类型转换器的方法。而要创建一个类型转换器,则需实现ognl.TypeConverter接口,但该接口中的方法convertValue()太复杂。org.apache.struts2.util.StrutsTypeConverter抽象类中提供了两个

15、抽象方法用于字符串和其他类型的相互转换。这两个方法如下:第6章Struts2类型转换与数据验证 convertFromString(Map arg0,String arg1,Class arg2):从字符串转换为指定对象类型,即把客户端获得的字符串数据转化成服务器需要的数据类型。arg0表示action上下文的Map对象;arg1是要转换的字符串值;arg2是要转换的目标类型。convertToString(Map arg0,Object arg1):将指定对象转换为字符串,即把服务器处理好的实际结果数据类型转换成客户端输出显示的字符串数据。arg0表示action上下文的Map对象;arg1

16、是要转换的对象。第6章Struts2类型转换与数据验证下面我们对注册的action属性进行重新设置,改变的要求如下:(1)birthday属性:输入的字符串提交后转换为 yyyy-MM-dd的日期格式;(2)email属性:可以输入以分号(;)隔开的多个email值,用List集合来保存,输出显示第1个Email为:,第2个Email为:,第3个Email为:等不定个数的email值格式。第6章Struts2类型转换与数据验证【步骤1】修改com.action.RegisterAction.java类。由于email要修改为List集合保存的多个值,因此要在RegisterAction.jav

17、a中把原来的代码:private String email;public String getEmail()return email;public void setEmail(String email)this.email=email;第6章Struts2类型转换与数据验证修改为如下代码来满足需求:private List email;public List getEmail()return email;public void setEmail(List email)this.email=email;第6章Struts2类型转换与数据验证【步骤2】编写日期类型转换器。要满足显示 yyyy-MM

18、-dd 日期格式,需编写日期类型转换器com.converter.DateConverter.java,代码如下:package com.converter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import com.opensymphony.xwork2.util.TypeConversionException;第6章Struts2类型转换与数据验证publ

19、ic class DateConverter extends StrutsTypeConverter private static SimpleDateFormat sf=new SimpleDateFormat(yyyy-MM-dd);/客户端到服务器端 public Object convertFromString(Map arg0,String arg1,Class arg2)try /将取得的客户端输入数据放入str;String str=(String)arg1;第6章Struts2类型转换与数据验证/使用“yyyy-MM-dd”日期格式解析字符串值,返回Date对象 return

20、sf.parse(str0);catch(ParseException e)throw new TypeConversionException(e.getMessage()+arg1+-class:+arg2+);第6章Struts2类型转换与数据验证/服务器端到客户端 public String convertToString(Map arg0,Object arg1)/使用 yyyy-MM-dd 日期格式格式化Date对象,返回字符串 return sf.format(arg1);第6章Struts2类型转换与数据验证【步骤3】编写email类型转换器。email属性的变化较大,请读者注意

21、此转换器的代码中对集合的处理部分的代码。email类型转换器com.converter.EmailConverter.java的代码如下:package com.converter;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class EmailConverter extends StrutsTypeConverter 第6章Struts2类型转换与数据验证/客户端到服务器端 pub

22、lic Object convertFromString(Map arg0,String arg1,Class arg2)List list=new ArrayList();String str=(String)arg1;/分隔分号中的数据存入数组paramValues;String paramValues=str0.split(;);/遍历数组paramValues,把数字元素存入集合list for(String param:paramValues)list.add(param);第6章Struts2类型转换与数据验证 return list;/服务器端到客户端 public String

23、 convertToString(Map arg0,Object arg1)/取出处理后的数据,转化为集合类型;List emails=(List)arg1;String result=;int i=0;/遍历集合设置输出字符串内容 for(String email:emails)第6章Struts2类型转换与数据验证 i+;result+=第+i+个Email为:+email+,;/把最后一个逗号去掉 result=result.substring(0,result.length()-1);result+=;return result;第6章Struts2类型转换与数据验证【步骤4】注册类型

24、转换器。仅仅为该应用提供类型转换器还不够,因为Struts2依然不知道何时使用这些类型转换器,因此要对写好的类型转换器进行注册,让Struts2框架知道它们的存在。Struts2支持以下三种注册类型转换器的方式:局部类型转换器;全部类型转换器;使用Struts2提供的类型转换注解来配置。第6章Struts2类型转换与数据验证(1)应用于局部的类型转换器。要指定局部范围的类型转换器,需要建立属性文件RegisterAction-conversion.properties。此文件名中后半部分(-conversion.properties)名字固定,前半部分(RegisterAction)为属性文件

25、中所定义的属性所在的Action文件名。选中com.action包,用右键【New】选中【File】,在打开的如图6-6所示的页面中输入文件名RegisterAction-conversion.properties,点击【Finish】按钮。第6章Struts2类型转换与数据验证图6-6 新建属性文件第6章Struts2类型转换与数据验证在新建属性文件的【Source】视图中输入以下代码,可完成局部转换器的注册。birthday=com.converter.DateConverteremail=com.converter.EmailConverter从代码中可以归纳出局部属性文件的两个特点:每

26、个属性定义遵循的格式为:要转换的类属性名=类型转换器的类文件全称;定义多个要转换的属性时,只需分行定义,不能用标点隔开。第6章Struts2类型转换与数据验证分析整个转换过程:从register.jsp提交到RegisterAction.java,当遇到setBirthday()方法时,系统到对应的属性文件RegisterAction-conversion.properties中检查有无对此属性进行类型转换,如果有,则执行属性文件中对应属性转换的类DateConverter.java,然后检查转换的方向,是客户端到服务器端还是服务器端到客户端,此处是字符串到Date类的转换,即选择conver

27、tFromString()方法,把处理后的结果返回Date类值赋给setBirthday()中的birthday。这样便完成了注册提交数据的转换过程。第6章Struts2类型转换与数据验证(2)应用于全局的类型转换器。注册全局类型转换器,可以使得注册的类型在所有的Action执行时都起作用。全局类型转换注册文件应该放在WEB-INF/classes文件夹根目录中,和struts.xml在同一目录,其文件名是xwork-conversion.properties,此文件名不可更改。由于也是.properties文件,其创建方式见图6-6,把文件放在ch05/src根目录,配置代码如下:java.

28、util.Date=com.converter.DateConverter第6章Struts2类型转换与数据验证由于email属性的转换器具有特殊性,因此不在全局文件中配置。注意,此时要把局部文件中birthday配置注释掉,否则全局转换器不起作用,因为局部注册文件会覆盖全局文件中相同的内容。属性文件的注释方式就是在语句前加井(#)号,代码如下:#birthday=com.converter.DateConverter第6章Struts2类型转换与数据验证【步骤5】运行结果。通过以上4个步骤的处理,基本完成了本实例对birthday和email的需求。注意,本实例是在6.1节实例的基础上做的修

29、改,已有的文件不重复讲述。重启Tomcat,运行工程路径http:/localhost/ch05/register.jsp,如图6-7所示,提交结果如图6-8所示。第6章Struts2类型转换与数据验证图6-7 提交输入页面第6章Struts2类型转换与数据验证图6-8 提交转换页面第6章Struts2类型转换与数据验证6.2.3 类型转换错误的处理类型转换错误的处理图6-7中输入的数据都是人为的,难免会发生输入格式不正确的情况,如在age中输入abc,在birthday中输入2001/1/1,在email中输入,等。图6-9显示了进行以上输入后的执行界面。第6章Struts2类型转换与数据验

30、证图6-9 类型转换错误提示页面1第6章Struts2类型转换与数据验证 1.类型转换的错误提示从图6-9看到,age和birthday由于数据类型错误而出现“Invalid field value for field age”的提示,email虽然转换了但并不是我们想要的结果。在这里涉及了两方面的处理:数据校验(email)和类型转换(age)。就像email的错误那样,输入的数据可以进行有效转换,但转换的结果依然是非法数据。所以,数据验证的前提还是类型转换,只有转换为正确的数据才能对此数据进行处理验证。第6章Struts2类型转换与数据验证图中,age、birthday的类型转换错误我们并

31、没有定义过,那么它们的错误提示来自哪里?当发生类型转换错误时,Struts2会调用conversionError的拦截器,这在defaultStack默认拦截器栈中定义。处于struts-default.xml文件中的相关代码如下(具体见6.4节):第6章Struts2类型转换与数据验证 input,back,cancel,browse 第6章Struts2类型转换与数据验证然后将对应错误封装成表单域错误(FieldError),并将这些错误信息放入ActionContext中,然后系统会跳转到名为input的逻辑视图中。因此归纳提示用户类型转换错误有三个必要条件:引用defaultStack

32、拦截器栈(一般action配置中默认配置,特殊情况请见6.4节);让Action类继承ActionSupport类;为Action配置添加input映射。第6章Struts2类型转换与数据验证2.错误提示的位置在图6-9中,对于age和birthday的错误提示分别在它们所在的表单组件的上方,而且表单中还会保留错误的输入内容,这些都是Struts2中表单标签自带的功能,可以自动输出与其关联的错误信息,通过字段名来关联。如果我们想改变信息提示的位置,让它们更醒目一些,该怎么做?主要是对fielderror标签和表单主题进行处理。第6章Struts2类型转换与数据验证前面已经提到错误内容被封装成表

33、单域错误(FieldError),那么可以使用fielderror标签来访问错误,修改register.jsp页面,添加代码在body标签的第一句如下:则重新运行错误的类型输入提交,所有的错误提示将集中显示在页头,而且用红色标注,一目了然,如图6-10所示。第6章Struts2类型转换与数据验证图6-10 类型转换错误提示页面2第6章Struts2类型转换与数据验证但是图6-10中仍然有明显的缺陷,就是表单域中的提示还在,这是因为这里的表单使用了xhtml主题的表单标签。我们可以再做以下修改,使得错误提示页面显示为图6-11所示。第6章Struts2类型转换与数据验证图6-11 类型转换错误提

34、示页面3第6章Struts2类型转换与数据验证【步骤1】新建提交页面。要完成以上转变,需在实例中做如下修改,新建register_simple.jsp来完成原来register.jsp的页面,代码如下:第6章Struts2类型转换与数据验证 username username password第6章Struts2类型转换与数据验证 password re-password第6章Struts2类型转换与数据验证repassword age age 第6章Struts2类型转换与数据验证 birthday birthday email 第6章Struts2类型转换与数据验证 email 第6章St

35、ruts2类型转换与数据验证【步骤2】修改Action文件。为了6.3节和6.4节中的一些应用,我们在RegisterAction.java中增加一个与execute方法结构一样的方法simple(),代码如下:public String simple()throws Exception System.out.println(abc execute.);return SUCCESS;第6章Struts2类型转换与数据验证【步骤3】配置struts.xml。在struts.xml中对simpleRegisterAction.action进行配置,代码如下:/register_simple.jsp

36、 /registerok.jsp 第6章Struts2类型转换与数据验证3.错误提示内容在默认的情况下,所有的转换错误都使用通用的i18n消息键来报告错误,我们可以改变这些消息键来达到目的。一般的做法如下:【步骤1】定义全局属性文件名。在struts.xml文件中已经定义了语句,如果没有,请加上:第6章Struts2类型转换与数据验证其中:constant标签表示在所有框架中使用的常量,这些常量会替代struts中内置的相应常量;name是常量名;struts.custom.i18n.resources是struts中国际化的资源文件,用来定义自动产生的信息;value属性定义资源文件的名字,

37、此处表示对应的文件是建立在WEB-INF/classes根目录下的message.properties文件。第6章Struts2类型转换与数据验证【步骤2】完善全局属性文件。错误提示属性文件的编写内容可以针对所有的属性,也可以针对个别属性,一般建议在全局属性文件中定义的内容是针对所有的属性。如果在message.properties文件中输入代码,那么任何错误都将提示“属性名 invalid”:xwork.default.invalid.fieldvalue=0 invalid在输出类型错误消息时,占位符0将自动被字段名所代替,如图6-12所示。第6章Struts2类型转换与数据验证图6-12

38、 类型转换错误提示页面3第6章Struts2类型转换与数据验证【步骤3】完善局部属性文件。我们还可以通过建立局部属性文件来处理特定字段的特殊提示。Struts2规定局部属性文件名与验证的Action名相同,如此处应命名为RegisterAction.properties,并且此局部属性文件必须建立在与验证的Action同一目录下,即建立在com.action包中。代码如下:invalid.fieldvalue.birthday=birthdays format is yyyy-MM-DD!第6章Struts2类型转换与数据验证左边为invalid.fieldvalue.+错误属性字段名,右边为

39、显示的内容,因此运行后的界面如图6-13所示。图6-13 类型转换错误提示页面4第6章Struts2类型转换与数据验证6.3 Struts2的数据验证的数据验证对用户输入数据进行验证包括客户端验证和服务器端验证。客户端验证主要通过JavaScript脚本代码来实现有效的数据格式,为服务器端过滤数据;而服务器端验证除了可以再次验证数据格式外,还可以进行数据逻辑的验证,如年龄是否符合规定等。第6章Struts2类型转换与数据验证那么读者会提出疑问,数据格式到底是在客户端还是服务器端验证,还是二者皆要?一般构建Web应用时通常要先在客户端进行表单数据格式验证,减少服务器负载。但是由于JavaScri

40、pt脚本可以在客户端被屏蔽掉,或有高手可以直接通过Socket通信来向服务器端直接传送非法数据攻击系统,因此最好在服务器端进行重复数据有效性验证。第6章Struts2类型转换与数据验证对于服务器端验证,Struts2提供了三种方式:使用Action中的validate()方法验证数据;使用验证框架;使用验证注解。第6章Struts2类型转换与数据验证6.3.1 编写编写Java代码并验证代码并验证ActionSupport抽象类中提供了一个validate()方法来存放校验代码,只有通过了validate()中的验证,Action才会执行execute()方法。1.Field错误信息【步骤1】

41、修改Action文件。对LoginAction.java的修改主要是修改继承类和增加validate()方法,代码如下:第6章Struts2类型转换与数据验证public class LoginAction extends ActionSupport/省略不修改部分public void validate()if(null=username|username.trim().length()=0)this.addFieldError(username,username must not be null!);if(username.length()10)this.addFieldError(use

42、rname,username invalid);第6章Struts2类型转换与数据验证 if(null=password|password.trim().length()=0)this.addFieldError(password,password must not be null!);if(password.length()10)this.addFieldError(password,password invalid);addFieldError(参数1,参数2)方法中的参数1表示放入域(Field)错误中的对应属性的名字,参数2表示提示的错误信息。第6章Struts2类型转换与数据验证此文

43、件其实可以不修改,为了给用户一个必填的提示,在表单组件中增加required属性值为true,则在表单显示页面中该组件会标注星号(*),代码如下:第6章Struts2类型转换与数据验证 第6章Struts2类型转换与数据验证【步骤3】运行结果。重启服务器,输入URL进行访问,如图6-14所示,不填表单数据直接提交的显示页面为图6-15。在图6-15中,错误信息不只在fielderror标签中显示,而且还在表单组件上方显示,这显然没有必要。如何让表单组件上方不显示错误提示呢?第6章Struts2类型转换与数据验证图6-14 星号登录页面 第6章Struts2类型转换与数据验证 图6-15 提交验

44、证页面 第6章Struts2类型转换与数据验证2.Action错误信息为了使错误提示不重复,下面举例来完善程序。【步骤1】修改Action文件。对LoginAction.java的修改主要是把错误放入Action级别的错误信息中,代码如下:第6章Struts2类型转换与数据验证public void validate()if(null=username|username.trim().length()=0)this.addActionError(username must not be null!);else if(username.length()10)this.addActionError

45、(username invalid);第6章Struts2类型转换与数据验证 if(null=password|password.trim().length()=0)this.addActionError(password must not be null!);else if(password.length()10)this.addActionError(“password invalid”);addActionError(参数1)方法中的参数1表示提示的错误信息。第6章Struts2类型转换与数据验证【步骤2】修改login.jsp文件。此文件只需把原来显示fielderror的标签改为ac

46、tionerro标签即可,代码如下:【步骤3】运行结果。重启服务器,输入URL进行访问,不填表单数据直接提交的显示页面如图6-16所示。第6章Struts2类型转换与数据验证图6-16 Action级别的错误提示第6章Struts2类型转换与数据验证3.validate()方法和validateXxx()方法由于Struts2的Action类里可以包含多个处理逻辑,就是定义了多个与execute()方法结构相同的逻辑方法,而并不是每个逻辑方法都需要输入校验,如添加数据一般要输入验证,但删除数据就没必要。按照编程习惯,对于同一个数据表的操作CRUD一般都放在一个Action中,如果仅定义vali

47、date()方法显然不能满足需求,因为validate()方法无法知道需要校验哪个处理逻辑。第6章Struts2类型转换与数据验证Struts2的Action还允许提供一个validateXxx()方法来实现校验指定处理逻辑的功能。【步骤1】修改Action文件。对LoginAction.java的修改主要是增加validateLogin()方法,只判断空值,而且提示信息有别于validate()中的定义。代码如下:第6章Struts2类型转换与数据验证public void validateLogin()if(null=username|username.trim().length()=0)

48、this.addActionError(username is null!);if(null=password|password.trim().length()=0)this.addActionError(password is null!);第6章Struts2类型转换与数据验证【步骤2】修改login.jsp文件。此文件表单用于将提交Action改成isUMAction.action,因为在struts.xml中配置好此action请求后,可执行login()逻辑方法。代码如下:第6章Struts2类型转换与数据验证 【步骤3】运行结果。重启服务器,输入URL进行访问,不填表单数据直接提交

49、的显示页面如图6-17所示。第6章Struts2类型转换与数据验证图6-17 validatXxx()错误提示1第6章Struts2类型转换与数据验证因此,在程序中把validate()方法名字改为validateExecute(),则空值错误提示就只有头两行的提示,如图6-18所示。图6-18 validatXxx()错误提示2第6章Struts2类型转换与数据验证6.3.2 使用验证框架使用验证框架1.在注册程序中使用验证框架校验规则针对register.jsp的每个表单域应满足的规则为:username:字符串,不为空,长度为610位;password和repassword:字符串,不为

50、空,长度为610位,并且二者相等。age:必填,1150的整数;birthday:必填,1990-01-01到2010-01-01之间的日期型。第6章Struts2类型转换与数据验证【步骤1】建立校验文件。在com.action包中新建文件RegisterAction-validation.xml,进行校验规则配置,其代码如下:第6章Struts2类型转换与数据验证 !-可省,默认为true true -username should not be blank!第6章Struts2类型转换与数据验证 6 10 username should be between$minLength and$m

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|