Struts2学习笔记二(数据验证)

转载 2016年08月29日 15:09:04

1、在action中重写validate() 会验证,但必须配置<result name="input">/register.jsp</result>,验证出错后前往input。

2、两个级别的错误:this.addActionError("username invalid");    如果在set这个属性时,因为类型不匹配,抛出错误,但会将属性设置为null或者0,然后去验证
              this.addFieldError("username", "invalid");   可以写在validate中。

                                      一般addFieldError:在set这个属性时,因为类型不匹配,抛出错误,然后写入addFieldError(发生在类型转换阶段)

                                      如果有以上两者存在任何错误,都不会执行execute,转向INPUT页面。

3、可以用struts自带的标签,刷新后仍可以保留原值,但不灵活

<s:form action="register.action" method="post" theme="simple">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:password name="repassword" label="repassword"></s:password>
<s:textfield name="age" label="age"></s:textfield>
<s:textfield name="birthday" label="birthday"></s:textfield>
<s:textfield name="graduation" label="graduation"></s:textfield>

<s:submit  label="submit"></s:submit>
</s:form>

4、如果自定义了 mothed=“myExecute”,也可以定义validateMyExecute方法来验证,但两者名字要对应好。(反射实现)

    如果validate也存在,也会被执行(永远会被执行),执行顺序为validateMyExecute--->validate

5、自定义Field错误,写个RegisterAction.properties,里面配置invalid.fieldvalue.age=age invalid!!!  age属性转换出错是会出现这个自定义错误

     这里可以  invalid.fieldvalue.age=年龄不合法!!! 引入中文 

6、可以用xml来校验,RegisterAction-validation.xml 注意名字,放同一个包下,错误会放在FieldError下,(一般框架错误放在FieldError,自己错误         放ActionError


字段优先校验,先设计字段,再设计校验器

<validators>

<field name="username">
<field-validator type="requiredstring">
<message>can not blank!!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>must should be ${minLength}-${maxLength}!!!</message>
</field-validator>
</field>
</validators>

7、国际化,package_zh_CN.properties,package_en_US.properties

         文件放在同RegisterAction-validation.xml文件目录下,配置key=value ,在验证的xml中

         <message key="username.valid"></message>   语言是根据浏览器的语言来选择的

8、其实struts对国际化的支持源于JDK中对国际化的支持。

      在classpath下配置  yanlei_en_US.properties    yanlei_zh_CN.properties  yanlei.properties   配置key=value

                 ResourceBundle bundle = ResourceBundle.getBundle("yanlei",Locale.CN);
String value = bundle.getString("hello"); 默认根据baseName+loca去取,没有就找默认的yanlei.properties 

String result = MessageFormat.format(value, new Object[]{"xxx"});value中使用{0},占位符

9、RegisterAction-validation.xml中,可以校验器优先, 先设置校验器,再在里面设计字段。

	<validator type="required">
		<param name="fieldName">username</param>
		<message>username can not blank!!</message>
	</validator>

	<validator type="stringlength">
		<param name="fieldName">username</param>
		<param name="minLength">4</param>
		<param name="maxLength">6</param>
		<message>length of username should be between ${minLength} and
			${maxLength}</message>
	</validator>

10、同时存在 RegisterAction-validation.xml 和validate 先前者,后后者。








TensorFlow深度学习笔记 逻辑回归 实践篇

Practical Aspects of Learning 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎s...
  • jdbc
  • jdbc
  • 2016年07月10日 22:50
  • 3215

吴恩达机器学习笔记_第二周

多元线性回归的情况: 符号表示方法,上标表示第几个样本,下标表示第几个特征。   多元线性回归的梯度下降: 当代价函数有多个参数时(即多个特征时):   使用梯度下降实用技...
  • hunterlew
  • hunterlew
  • 2016年04月11日 21:31
  • 2921

PCIe 学习笔记(二)

pci note 2 -v0.1 2014.11.18 *** draft  本文继续pci note 1, 介绍pci_create_root_bus函数, 内核版本为3.18-rc1 ...
  • scarecrow_byr
  • scarecrow_byr
  • 2014年12月01日 22:19
  • 1713

struts2学习笔记(6)---数据验证之validate()方法

问题引入通常在form表单输入数据提交前,会进行输入的验证和限制,比如登陆时账户和密码不能为空,注册时两次输入密码必须一致……一般可用JS进行控制。而struts2中提供了更为便捷的方法。使用Acti...
  • u013539342
  • u013539342
  • 2015年07月13日 21:56
  • 722

struts2学习笔记3数据类型转换

  • 2010年04月07日 20:49
  • 3.26MB
  • 下载

Struts2学习笔记(二)数据驱动与struts.xml配置

1.Action get/set 自动获取/设置数据 2.ActionSurport引入 3.数据驱动 (1)属性驱动(FieldDriven) A:基本类型属性 B.JavaBean类型属性...
  • naruto_Mr
  • naruto_Mr
  • 2015年07月31日 00:31
  • 437

Struts2 入门学习笔记(三)——数据转换

Struts入门学习笔记(三)——数据转换 一.基于OGNL的类型转换 1. 针对复合类的类型转换         借助内置的类型转换器,Struts2可以完成字符串和基本类型之间的类型转...
  • SUNFC_nbu
  • SUNFC_nbu
  • 2016年04月13日 11:52
  • 239

Struts2 学习笔记——数据类型转换

我们都知道,在发出的Http请求信息中,所有的请求参数都是字符串类型的。但是我们在后台处理这些数据时,可能需要将某些参数转化成相应的数据类型后才进行业务逻辑的处理。 在Struts2框架中,提供...
  • fendou123_love
  • fendou123_love
  • 2013年09月02日 21:41
  • 541

Struts2学习笔记(九)——数据标签

Action          在一个jsp中调用Action,并通过指定executeResult参数,将该action的处理结果包含到本页面中。我觉得可能在 component标签中用到,在组件...
  • dananhai381
  • dananhai381
  • 2012年01月12日 10:06
  • 309

Struts2.x--学习笔记之页面对象数据传递 详解

首先我们的Action层需要定义一个属性(实体对象): /** * 决策信息 实体Dao */ private AssistDecisionDao assistDecisionDao; ...
  • jpr1990
  • jpr1990
  • 2011年11月07日 14:50
  • 1405
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2学习笔记二(数据验证)
举报原因:
原因补充:

(最多只允许输入30个字)