http://struts.apache.org/2.0.9/docs/validation.html这个是官网效验部分的doc。
struts验证分为2种:Field Validators 和Non Field Validators
首先是验证器的执行先后:
Non Field Validators优先Field Validators,
Non Field Validators排在前面的先执行
Field Validators排在后面的先执行
短路原则:
Non Field Validators最优先执行,如果某个字段效验失败,则改字段下的所有效验不会获得执行机会,不会影响其他字段的执行,Field Validators一样操作。
Non Field Validators不会影响Field Validators的执行。
这里使用都是Non Field Validators的效验,在学习的时候记录下,设置2个相同的Field Validators或Non Field Validators,只会执行一个。
1.必填效验器:
可接收参数:fieldName
对于输入框不能用这个,应该使用requiredstring,我想应该输入框默认传入的是字符长度为0的"",对于required而言,是不为空的。所以过滤是无效的。这样的话,可以用在上传文件的时候判断是否上传了文件
<validator type="required">
<param name="fieldName">pic</param>
<message>${getText('login.pic.required')}</message>
</validator>
本来我是想将pic1和pic2一起使用required做效验 但是发现后面的age会覆盖username,貌似只能对一个参数做效验,后来按惯性思维,放在同一个param下,结果没有过滤该字段。
<param name="fieldName">pic,pic2</param>
2.必填字符串效验器:
可接收参数:fieldName ,trim
要求字段值必须非空且长度大于0
<field name="user.username">
<field-validator type="requiredstring">
<message>${getText('login.username.required')}</message>
</field-validator>
</field>
3.int,double效验器:
可接收参数:fieldName ,min,max
必须在int型范围
<validator type="int">
<param name="fieldName">user.age</param>
<param name="min">18</param>
<param name="max">150</param>
<message>${getText('login.age.valid')}</message>
</validator>
国际化:login.age.valid=年龄必须在${min}-${max}之间
如果接收的是非数字,页面上就会输出2条错误信息,不清楚在那里设置短路。
4.date效验器:
<validator type="date">
<param name="fieldName">user.birth</param>
<param name="min">1990-01-01</param>
<param name="max">2100-01-01</param>
<message>${getText('login.date.valid')}</message>
</validator>
5.expression效验器:
可接收参数:expression
求出ognl表达式的值。为true通过验证
分享到:
相关推荐
#### 一、Struts2内建校验器 在探讨Struts2校验器之前,我们首先需要了解这些校验器是如何被定义和集成到框架中的。如文中所述,Struts2的内建校验器主要位于`xwork-2.0.4.jar`压缩包中的`default.xml`文件里。这个...
Struts2是一个流行的Java web框架...不仅如此,Struts2的灵活性还允许开发者扩展和定制自己的校验器,以满足不同项目的需求。总的来说,Struts2的输入校验机制为开发高效、健壮的Java web应用程序提供了强有力的支持。
熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个自定义类型转换器,并基于应用程序进行全局...
本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解什么是拦截器。拦截器是基于AOP(面向切面编程)思想的,它们在Action调用前后执行,形成一个拦截器链。每个拦截器都可以执行特定的任务,并且...
要求使用Struts2的内建校验器校验“书名”、“作者”、“出版日期”、“价格”和“库存数量”字段;要求手动编写代码校验“书号”的有效性;要求手动编写代码校验“出版社”字段中是否包含了“出版社”三个字。
Struts2内建了一个基于XML的校验框架,允许开发者在Action类的配置文件中定义验证规则。这些规则可以指定字段的必填性、长度限制、数据类型等。例如,你可以通过以下方式定义一个用户名的非空校验规则: ```xml ...
Struts2内建对Ajax的支持,可以通过`<s:a>`标签的`ajax="true"`属性或者`@Ajax`注解实现无刷新更新,提高用户体验。 总结,Struts2作为Java web开发的主流框架之一,其核心技术包括Action、Interceptor、Value ...
- **Struts2内建的拦截器:** - **exception:** 处理异常。 - **fileUpload:** 文件上传。 - **prepare:** 在调用Action方法之前准备数据。 - **params:** 设置Action中的参数。 **2. 拦截器的组合与使用:...
**6.5 内建校验器** - **6.5.1 required必填校验器** - **实现方式**:检查某个字段是否为空。 - **6.5.2 requiredstring必填字符串校验器** - **实现方式**:检查某个字符串字段是否为空。 - **6.5.3 int整数...
在JSP开发中,理解并熟练使用Struts2的内建自定义拦截器对于优化应用性能和增强功能至关重要。 自定义拦截器主要应用于以下场景: 1. 参数解析:拦截器可以解析请求参数并将其赋值给Action的属性。 2. 数据校验:在...
#### 五、Struts2内建拦截器 Struts2提供了许多内建的拦截器,它们覆盖了常见的功能需求,例如: - **模型驱动(ModelDriven)**:初始化模型实例。 - **参数(Params)**:处理请求参数。 - **令牌(Token)**:...
- **内建拦截器**:Struts2提供了一系列预定义的拦截器,如参数填充拦截器、异常处理拦截器等。 - **自定义拦截器**:开发者可以自定义拦截器,实现特定的功能。 - **自定义方法过滤拦截器**:根据Action的方法名来...
7. **Validation框架**:Struts 2内建了强大的验证框架,可以通过XML或注解方式定义验证规则,实现数据的前端和后端双重校验。 8. **插件系统**:Struts 2拥有丰富的插件库,如JSON插件、REST插件、Freemarker插件...
`FileUploadInterceptor`是Struts2内建的拦截器,用于解析请求中的文件数据。 4. **Commons FileUpload库**:Struts2默认使用Apache Commons FileUpload库来处理文件上传。这个库负责读取HTTP请求中的多部分数据,...
#### 四、Struts2内建验证程序 Struts2提供了一系列预定义的验证器类型,开发者可以根据实际需求选择合适的类型进行验证。 - **required**:验证字段值是否为空(null),注意空字符串并不视为null。 ```xml ...
Struts2提供了一种内建的数据校验机制,即在Action类中定义validate()方法。这个方法会在调用`execute()`之前自动执行,用于验证用户提交的表单数据。我们可以在`validate()`方法中添加如下代码: ```java ...
拦截器是Struts2的一大特色,它们在Action执行前后按顺序调用,可以实现如登录检查、数据校验、日志记录等功能。开发者可以根据需求编写自己的拦截器并将其加入到拦截器链中。 在实际项目中,Struts2通常与Spring、...
4. **内建校验器**:内建校验器是Struts2提供的一种便捷方式,用于快速实现常见数据校验逻辑。学生需要学习如何创建和使用内建校验器,这样可以减少重复代码,提高代码复用性。 5. **实现步骤**: - 首先,理解...
而在Struts2中,可以使用拦截器(Interceptor)配合Validation.xml或注解进行数据校验。这样,当用户提交表单时,框架会自动进行校验,如果数据不合法,会返回错误消息并显示在页面上,防止无效数据进入数据库。 2....