- 浏览: 174852 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yinvent:
谢谢,终于找到一个可以用的例子!
struts2学习之一简单范例 -
锅巴49:
学习了,不错.
使用 Spring 2.5 注释驱动的 IoC 功能 -
fooky:
你好,今天在配置spring secutiry3,想让系统先从 ...
spring security 配置文件小结(逐步深化到url级别) -
lj508:
你好啊 请教你个问题
我用那个纯jsp上传时
怎么运行时根本没 ...
Sturt2学习之十二---文件上传 -
641216927:
我还是一个struts2新手。
有个问题请教一下:
同时在t ...
struts2学习之一简单范例
struts2学习之七校验框架--字段校验(使用xml文件)
一、xml文件规范
在相应的action的同一包下×××--validation.xml
如RegisterAction对应的校验框架为RegisterAction-validation.xml
若要写对应某个方法的写法如下: RegisterAction-test-validation.xml
当执行该方法时校验顺序RegisterAction-test-validation.xml--->RegisterAction-validation.xml
所以当有多个方法时,最好不要提供总的xml了,这样比较清晰
二、可以根据app中的范例获得xml头部如何写
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
三、可以用firefox打开上面链接中的dtd
上面有对如何写dtd的约束
四、写按“field”的校验框架(一个filed对应一个字段)
<field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>username should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message>password should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>password should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="repassword"> <field-validator type="requiredstring"> <message>repassword should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>repassword should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>age should not be blank!</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>age should be between ${min} and ${max}</message> </field-validator> </field> <field name="birthday"> <field-validator type="required"> <!--此处日期应该是required而不是requiredString,否则会有多余的错误信息,requiredString只适用于字符串--> <message>birthday should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">2001-01-01</param> <param name="max">2003-12-31</param> <message>birthday should be between ${min} and ${max}</message> </field-validator> </field> <field name="graduation"> <field-validator type="required"> <message>graduation should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">2005-01-01</param> <param name="max">2007-12-31</param> <message>graduation should be between ${min} and ${max}</message> </field-validator> </field>
以上书写的属性值名字如requiredstring可参考xwork.JAR中的vlidators包中default.xml文件中的name
五、校验框架校验错误的信息是放在fieldError里面的,不是放在actionError里的。
当校验信息不复杂推荐用这种xml方式,若特复杂才用validate的方法
六、web开发客户端校验
1、客户端校验javascript
2、服务器端校验-前面阐述的校验都是服务器端校验
3、struts2同样支持客户端校验,但还是比较弱的,比较死板,一般自己编写javascript
用struts2支持客户端校验
要求:1)form的主题(theme)一定不能设置为simple
2)将form的validate属性设置为true,会将我们写的xml文件翻译成javascript文件生成在客户端校验。
4、自己编写javascript校验举例
以下图标分别对应了方法申明处和调用处
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'register2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> function validate() { <!--document.getElementsByName("username")[0]写[0]的原因前面的函数返回的是一个数组--> <!--document.getElementsByName("username")[0]等价于document.getElementById("usernameId").value--> var usernameValue = document.getElementById("usernameId").value; var passwordValue = document.getElementById("password").value; var repasswordValue = document.getElementById("repassword").value; if(usernameValue.length == 0) { alert("username should not be blank!"); return false; } else if(usernameValue.length < 6 || usernameValue.length > 10) { alert("length of username should be between 6 and 10!"); return false; } if(passwordValue.length == 0) { alert("password should not be blank!"); return false; } else if(passwordValue.length < 6 || passwordValue.length > 10) { alert("length of password should be between 6 and 10!"); return false; } if(repasswordValue.length == 0) { alert("repassword should not be blank!"); return false; } else if(repasswordValue.length < 6 || repasswordValue.length > 10) { alert("length of repassword should be between 6 and 10!"); return false; } if(passwordValue != repasswordValue) { alert("password and repassword should be same!"); return false; } return true; } </script> </head> <body> <table align="center" width="40%"> <tr> <td> <s:fielderror cssStyle="color:red" /> </td> </tr> </table> <s:form action="register" theme="simple" onsubmit="return validate();"> <table align="center" width="40%" border="1"> <tr> <td> username </td> <td> <s:textfield name="username" label="username" id="usernameId"></s:textfield> </td> </tr> <tr> <td> password </td> <td> <s:password name="password" label="password" id="passwordId"></s:password> </td> </tr> <tr> <td> re-password </td> <td> <s:password name="repassword" label="repassword" id="repasswordId"></s:password> </td> </tr> <tr> <td> age </td> <td> <s:textfield name="age" label="age"></s:textfield> </td> </tr> <tr> <td> birthday </td> <td> <s:textfield name="birthday" label="birthday"></s:textfield> </td> </tr> <tr> <td> graduation </td> <td> <s:textfield name="graduation" label="graduation"></s:textfield> </td> </tr> <tr> <td> <s:submit value=" submit "></s:submit> </td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body> </html>
发表评论
-
webwork Action中获取request, response,session对象的方法
2009-04-16 17:25 1662webwork Action中获取request ... -
不依赖XML代码粘合创建Struts 2应用程序
2009-04-07 15:32 1442不依赖XML代码粘合创建Struts 2应用程序 原文地址:h ... -
struts.properties粗解
2009-04-07 14:28 1423原文章地址:http://fratemity1314.spac ... -
Struts2学习之十五-声明式的异常处理
2009-04-06 22:32 889看下文前可以先参考: http://blog.chinaun ... -
struts2学习之十四----其他知识点
2009-04-06 19:31 1297一、struts2探索学习完一定需要实际去运行,这样才能有更加 ... -
Sturt2+spring整合
2009-04-01 17:55 1141一、相应的spring的jarStruts2-spring-p ... -
Sturt2学习之十三---文件下载
2009-04-01 17:01 1031Sturt2学习之十三---文件下载1、download.js ... -
Sturt2学习之十二---文件上传
2009-04-01 15:59 2290一、纯jsp文件上传1、新建文件夹upload内含upload ... -
struts学习之十一-----国际化
2009-04-01 10:59 1071一、java对国际化的支持 ... -
struts2学习之九---拦截器
2009-04-01 10:34 1471拦截器实现机制一、回忆“java反射与动态代理二.txt”,因 ... -
struts2学习之八校验框架--非字段校验
2009-04-01 01:16 1268一、非字段校验 用属性来校验字段和字段检验刚好是参照物相反 ... -
struts2学习之六输入校验
2009-03-31 21:53 1565一、输入校验与类型转化的关系 遇到类型转换错误的时候(也就是说 ... -
struts2学习之五(最基本的)输入校验
2009-03-31 21:51 931一、register.jsp注册页面 //以下第一两句 的作用 ... -
struts2学习之四、类型转换2
2009-03-31 17:50 854<h3><font color=" ... -
struts2学习之三、类型转换
2009-03-31 17:08 910struts2学习之三、类型转 ... -
struts2学习之二------基本验证
2009-03-31 15:39 1004struts2学习之二----基本 ... -
struts2学习之一简单范例
2009-03-31 14:45 2213简单范例1、下载struts2.0.11-all.rar 2、 ...
相关推荐
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
本学习笔记主要探讨了Struts2中的校验器(Validator)和校验框架,帮助开发者理解如何有效地实现数据验证,确保应用程序的健壮性。 首先,我们来看Struts2的校验框架。这个框架提供了强大的功能,可以对用户输入...
在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中重写`validate()`方法是最常见的做法。此方法允许开发者...
Struts2提供了内置的验证框架,允许开发者自定义校验规则,以满足特定业务需求。下面将详细介绍Struts2自定义校验框架的相关知识点。 1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,...
其中,Struts2提供的校验框架是其核心特性之一,能够有效地进行表单验证,并且支持多种验证方式。 #### 二、配置Struts2框架 为了使用Struts2框架,首先需要在项目的`web.xml`文件中配置过滤器。下面的示例展示了...
拦截器是Struts2的核心特性之一,它在MVC设计模式中起到了承上启下的作用,增强了框架的功能和灵活性。在Struts2中,拦截器可以理解为一种AOP(面向切面编程)的概念,它们在动作执行前后进行额外的操作,比如日志...
其中,Struts2校验框架(Validation Framework)是该框架的核心特性之一,主要用于确保用户输入的数据符合预期的格式或范围,从而有效避免因数据不规范而引发的各种问题。 #### 二、Struts2校验框架的基本概念 在...
Struts2是一个强大的Java Web应用程序开发框架,它在MVC(模型-视图-控制器)设计模式的基础上提供了许多优秀特性,其中包括一个强大的校验框架。这个框架使得开发者能够有效地验证用户输入,确保数据的准确性和安全...
Struts2是一个流行的Java web框架,它为开发者提供了丰富的功能,包括输入校验。输入校验是确保应用程序安全性和数据完整性的关键环节,Struts2为此提供了强大的支持。以下是关于Struts2输入校验的详细解释: 首先...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在Struts2中,输入校验是确保用户提交的数据符合预设规范的重要环节,可以防止非法数据进入系统,保护数据的完整性和安全性...
Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...
Struts2是一个非常流行的Java Web应用框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发人员构建动态、数据驱动的Web应用。在Struts2中,校验框架是处理用户输入验证的重要组成部分,确保提交的数据符合业务...
这篇博客“Struts2 简单数据校验”可能详细介绍了如何在Struts2框架中实现对用户输入的有效性验证。 数据校验是任何Web应用程序中的核心部分,它涉及到多个方面,如必填字段、数据类型检查、长度限制、格式验证等。...
Struts2内建了一个基于XML的校验框架,允许开发者在Action类的配置文件中定义验证规则。这些规则可以指定字段的必填性、长度限制、数据类型等。例如,你可以通过以下方式定义一个用户名的非空校验规则: ```xml ...
Struts2集成Spring的Validation框架,允许开发者在Action类的属性上使用JSR303/JSR349(Bean Validation)注解进行数据校验。例如,`@NotNull`用于检查非空,`@Size(min=, max=)`限制字符串长度,`@Min`和`@Max`...
本讲主要探讨Struts2的校验框架,它提供了对用户输入数据进行验证的功能,确保数据的有效性和安全性。 在传统的MVC模式中,数据验证通常在控制器或模型层进行,但在Struts2中,校验逻辑被移到了专门的校验框架中,...