`
yunchow
  • 浏览: 317743 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts1.2验证框架入门

    博客分类:
  • J2EE
阅读更多
Struts 验证
在ActionForm里的validate方法里主要进行页面格式的验证
而在Action中进行业务方面验证.
ActionErrors validate() {
  ActionErrors errors = new ActionErrors();
  errors.add(String/*与页面的出错标签相对应<html:errors property="">*/, 
	     new ActionMessage("errors.username"/*和资源文件里的Key对应*/));

}
在资源文件中有两个特殊的属性,它们会自动加到消息的头部和尾部.
errors.header=<font color="red">
errors.footer=</font>
但是要注意:在资源文件中写JS脚本是不对的.
errors.header=<script>alert("
errors.footer=")</script>
这样写是没办法解析的.可采用如下手段进行Script的解析.
<html:messages id="msg" property="user" header="<font color='green'>" footer="</font>">
  <script>alert("${msg}");</script>
  <bean:write name="msg" />
</html:messages>
errors.add("user", new ActionMessage("不允许不空", false));

//ActionErrors errors = new ActionErrors();
//errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("密码不正确", false));
//saveErrors(request, errors); // 保存errors
ActionMessage msgs = new ActionMessage();
msgs.add(ActionMessage.GLOBAL_MESSAGE, new ActionMessage("密码不正确", false));
//saveMessage(request, msgs);
saveErrors(request, msgs);
<html:message id="msg" message="true">
  ${msg}
</html:message>
---------------------------------------
Validate 验证框架
通过xml配置来实现验证工作
validator-rules.xml

要验证的Form要继承ValidatorForm.

在validation.xml中
<form-validation>
<formset>
  <form name="regForm">
    <field property="userName" depends="required,minlength,maxlength,mask" >
      <arg0 key="用户名" resource="false" />
      <arg1 name="minlength" key="${var:minlength}" resource="false" />
      <arg1 name="maxlength" key="12" resource="false" />
      <msg name="mask" key="用户名只能是字母与数字组合" resource="false" />
      <var>
<var-name>minlength</var-name>
<var-value>6</var-value>
      </var>
      <var>
<var-name>mask</var-name>
<var-value>^[a-z0-9A-Z]*$</value>
      </var>
    </field>
  </form>
</formset>
</form-validation>
----------------------------
正则表达式:
\s 空格
\S 非空格
\d 数字
\D 非数字
\w 单词
\W 非单词
^ 一行的开始
$ 一行结尾
? 0个或1个
* 0个或多个
+ 一个或多个
{n} n个
---------------
自定义规则:
public class SelValidator {
public static boolean validateMinSel(
 	Object bean,
	ValidatorAction va,
	Field field,
	ActionMessage message,
	Validator validator,
	HttpServletRequest request) {
  // 把interest数组取出来
  // 把minSel到底最少要取几个的数字取出来
  // 比较
  // 如果验证不成功,要生成错误消息.
  String propName = field.getProperty();
  // String[] interests = request.getParameterValues(propName);
  try {
    String[] interests = (String[])PropertyUtils.getProperty(bean, propName);
    Integer minSel = new Integer(field.getVarValue("min"));
    if(interests.length >= minSel) return true;
    else {
	if(messages==null)	messages = new ActionMessages();
	messags.add(,field.getProperty()/*等同field.getKey()*/
		Resources.getActionMessage(validator,request,va,field));
	return false;
    }
  } catch(Exception ex){
	if(messages==null)	messages = new ActionMessages();
	messags.add(,field.getProperty()/*等同field.getKey()*/
		Resources.getActionMessage(validator,request,va,field));
	return false;	
  }
}
}

----------------------------------------------------
ValidatorActionForm
DynaValidatorActionForm
// 它们是根据Action的path来验证的.
这是与ValidatorForm的惟一的区别.

---------------------------------------
Struts 国际化.
ApplicationResource_zh_CN.properties
ApplicationResource_en_US.properties
ApplicationResource.properties

native2ascii命令用法:
native2ascii -encoding GBK tmp.properties ApplicationResource_zh_CN.properties
验证转码是否成功:
在浏览器中修改显示语言.
---------------------------------
验证框架总结:
1, ActionForm要继承ValidatorForm或ValidatorActionForm
2, struts-config.xml中加<plug-in>
3, 加validator-rules.xml中的消息copy到资源文件中
4, 新建validation.xml, 在WEB-INF下,把validator-rules.xml中的DTD考过来
5, <formset>
      <form name="">
  <field property depend="">
  <args..
  <msg...
  <var..
mask, validwhen, required,email




分享到:
评论

相关推荐

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    精通Struts_基于MVC的Java Web设计与开发

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    精通struts:基于mvc的java web设计与开发part3

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    精通struts:基于mvc的java web设计与开发part2

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    精通struts:基于mvc的java web设计与开发part1

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    基于MVC的java Web设计与开发

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    Struts2 in action中文版

    10.1.2 Struts 2工作流中的验证框架 219 10.2 将动作关联到验证框架 222 10.2.1 使用ActionClass-validations.xml声明验证元数据 223 10.2.2 研究内建的验证器 226 10.3 编写自定义验证器 227 10.3.1 检查密码强度的...

    structs程序设计从入门到精通word文档

    1.2 Struts的体系结构 8 1.3 Struts1.0学习文档 8 1.3 JSP流行模板Struts的安装配置 8 1.4Struts 用户指南 8 1.5 你的第一个struts应用程序 8 第2章深入Struts结构 8 2.1人介绍应用框架 mvc和model2 8 2.2 Struts...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    Eclipse开发入门与项目实践 源代码

    5.4.3 Validator验证框架 197 案例5-6 使用Validator验证框架实现注册表单的数据验证 201 5.4.4 Struts标记库 206 案例5-7 采用Struts标记库实现身份验证应用相关页面 207 第6章 Eclipse中Hibernate的开发...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    AnyFo - Struts 2_1爆胎易筋丸.pdf

    目录 1 入门..................................................................5.3 验证框架................................................................................................................17...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    java开源包1

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包11

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包2

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包3

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包6

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

Global site tag (gtag.js) - Google Analytics