Struts2框架的输入校验是通过XML配置文件或者注解来实现的,当然在Action中进行手动(编码)校验也是允许的,并且可以手动校验和XML配置文件或者注解方式校验一起使用。
数据校验依赖于validation和workflow两个拦截器。validation拦截器进行校验并创建具体字段错误的列表,workflow拦截器检查存在的校验错误,如果有,就返回"input"结果码,返回到包含校验的表单页面。
在基于Struts2框架的Web应用中,输入校验即可以通过在服务端完成,也可以在客户端完成。本文主要记录Struts2在服务端的几种校验方式。
Struts2在服务端的校验方式主要有两种:
(1)基于硬编码的方法:
在业务控制器类中重写validate()方法或者使用形式为validateXxx()形式的校验方法对输入数据进行校验。其中Xxx表示action中不同的方法名称。
package cn.bdx.controller; import cn.bdx.model.Book; import com.opensymphony.xwork2.ActionSupport; public class BookController extends ActionSupport{ private Book book; /** * 添加书籍 * @return */ public String add() { return SUCCESS; } /** * 添加书籍的验证 * @return */ @Override public void validate() { if(book == null) { this.addFieldError("bookError", "book不能为空"); }else if(book.getName().isEmpty()) { this.addFieldError("bookError", "书名不能为空"); }else if(book.getPrice() < 0) { this.addFieldError("bookError", "价格不能为空"); } } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
或者:
package cn.bdx.controller; import cn.bdx.model.Book; import com.opensymphony.xwork2.ActionSupport; public class BookController extends ActionSupport{ private Book book; /** * 添加书籍 * @return */ public String add() { return SUCCESS; } /** * 添加书籍的验证 * @return */ public void validateAdd() { if(book == null) { this.addFieldError("bookError", "book不能为空"); }else if(book.getName().isEmpty()) { this.addFieldError("bookError", "书名不能为空"); }else if(book.getPrice() < 0) { this.addFieldError("bookError", "价格不能为空"); } } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
注:这种方式代码的耦合度比较高。
(2)基于配置文件的方法:
这种方式是吧校验规则保存在特定的XML格式配置文件中,实现输入校验和Action类的分离,以此来降低代码的耦合性。规则结构由xwork-validator-1.0.2.dtd文件定义的,新建BookController-validation.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"> <validators> <field name="book.name"> <field-validator type="requiredstring"> <message>书名不能为空!</message> </field-validator> </field> <field name="book.price"> <field-validator type="required"> <message>请输入单价!</message> </field-validator> <field-validator type="double"> <param name="minExckusive">0</param> <message>单价必须大于${minExclusive}</message> </field-validator> </field> </validators>
基于validator校验器的校验规则:
<?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"> <validators> <validator type="requiredstring"> <param name="fieldName">book.name</param> <message>书名不能为空!</message> </validator> <validator type="double"> <param name="fieldName">book.price</param> <param name="minExckusive">0</param> <message>单价必须大于${minExclusive}</message> </validator> </validators>
BookController-validation.xml文件在项目中的位置跟BookController处于同一个包中
相关推荐
Struts2是一个非常流行的Java Web框架,用于构建企业级应用。在Struts2中,数据校验是一个重要的功能,...这个压缩包对于学习和掌握Struts2数据校验机制非常有帮助,特别是对于那些希望提升Java Web开发技能的人来说。
通过研究这个源码,我们可以学习如何在实际项目中实施Struts2的数据校验,了解其内部工作原理,以及如何自定义和优化校验过程。对于任何使用Struts2的开发者来说,掌握这些知识点都是非常有价值的。
在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中重写`validate()`方法是最常见的做法。此方法允许开发者...
总之,Struts2的数据校验机制是其强大功能之一,它帮助开发者有效地管理用户输入,保证数据的准确性和完整性。通过深入研究“Struts2_1100_SimpleDataValiation”源码,你可以掌握Struts2数据校验的基本原理和实践...
总的来说,这个压缩包提供了一个全面的学习资源,涵盖了Struts2框架中的关键功能:数据校验、前端和后端校验策略、国际化处理以及错误信息的样式定制。通过深入研究这些文档和示例,开发者可以有效地提升其在Struts2...
Struts2 数据校验是Java Web...学习并熟练掌握Struts2的数据校验,不仅可以提升开发效率,还能帮助开发者编写出更加健壮、可靠的Web应用。因此,无论你是初学者还是经验丰富的开发者,都应该深入理解和实践这一功能。
本学习笔记主要探讨了Struts2中的校验器(Validator)和校验框架,帮助开发者理解如何有效地实现数据验证,确保应用程序的健壮性。 首先,我们来看Struts2的校验框架。这个框架提供了强大的功能,可以对用户输入...
与Struts1相比,Struts2具有显著的优势,包括更少的侵入性设计、支持AOP编程的拦截器、类型转换器、多样的表现层技术以及更灵活的数据校验机制。 首先,Struts2的无侵入式设计使得应用程序不再紧密依赖Servlet API...
struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2与AJAX二 struts2与AJAX三 struts2...
当数据校验失败时,Struts2会自动将错误信息放入ActionContext,可以通过`ActionContext.getErrorMessages()`获取这些错误信息。在JSP页面中,可以使用Struts2的标签库如`s:fielderror`来显示错误信息。 6. **...
2. Struts的校验框架,如何通过`validation.xml`定义和实现数据验证规则。 3. 数据库交互,可能涉及到JDBC或ORM框架如Hibernate来操作用户数据。 4. 用户注册和登录的业务逻辑,包括数据验证、错误处理以及成功后的...
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
3. **Interceptor**:拦截器是Struts2的一个强大特性,它允许在Action调用前后插入自定义逻辑,如日志记录、权限验证、数据校验等。通过配置Interceptor栈,可以灵活控制Action的执行流程。 4. **文件上传**:在...
- **框架原理**:Struts2提供了强大的输入校验功能,可以自动检查用户提交的数据是否符合预期。 - **配置方式**: - 使用注解方式(适用于Struts2较新版本)。 - 在`struts.xml`或Action类中通过配置文件的方式...
在Struts2中,校验是确保数据质量和系统安全的关键环节。本文将深入探讨Struts2中的验证机制,以及如何利用它来提高应用的健壮性。 1. **Struts2验证框架基础** Struts2提供了强大的内置验证框架,允许开发者定义...
这篇博客“Struts2 Action方法的校验一”很可能是关于如何在Struts2中对Action方法进行数据验证的探讨。 数据验证是Web应用开发中必不可少的步骤,用于确保用户输入的数据符合预设的规则和格式,从而防止非法数据...
通过这个"strutsDemo03"项目,你可以学习如何集成和使用Struts的验证功能,理解数据验证流程,并掌握在实际开发中如何实现有效的数据校验。同时,这也为你提供了实践机会,加深对MVC模式和Struts框架的理解。记得在...
《Struts 2完全学习手册》全面讲述Struts 2开发框架的知识,包括Struts 2中配置文件的详细讲解、国际化与异常处理、数据类型的转换、数据的输入校验、Struts 2强大的标签库、Struts 2中文件的上传与下载、Struts 2对...
### Struts2学习心得:数据类型转换与校验方式 #### 一、Struts2框架简介 Struts2是基于MVC(Model-View-Controller)设计模式的Java Web开发框架,它为开发者提供了一种简洁高效的方式来构建复杂的Web应用程序。...