Struts2手动输入校验详解:validate()与字段错误处理

需积分: 0 6 下载量 102 浏览量 更新于2024-08-18 收藏 2.39MB PPT 举报
本文主要介绍如何手工编写代码实现Struts2框架中的输入校验,并结合Struts2的基础知识,包括框架的概述、配置文件、输入校验等关键概念。Struts2是一个流行的MVC应用程序框架,它提供了一系列解决方案,如页面导航、数据验证、统一布局、国际化、Ajax支持等。 首先,我们关注的是输入校验。在Struts2中,我们可以重写Action类的`validate()`方法来实现自定义的数据验证逻辑。这个方法会检查与`execute()`方法签名相同的动作方法。当验证失败时,我们应该利用`addFieldError()`方法将错误信息添加到`fieldErrors`集合中,这个集合是`ActionSupport`类的一个属性。如果`fieldErrors`包含错误信息,Struts2会自动将请求转发到名为`input`的结果视图。 以下是一个`validate()`方法的示例: ```java public void validate() { if (this.username == null || "".equals(this.username.trim())) { this.addFieldError("username", "用户名不能为空"); } if (this.mobile == null || "".equals(this.mobile.trim())) { this.addFieldError("mobile", "手机号不能为空"); } else { if (!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile.trim()).matches()) { this.addFieldError("mobile", "手机号的格式不正确"); } } } ``` 验证失败后,请求会被转发到`input`结果视图,例如: ```xml <result name="input">/addUser.jsp</result> ``` 在`addUser.jsp`页面中,我们需要引入Struts2的标签库,然后使用`<s:fielderror/>`标签来显示失败信息: ```jsp <%@taglib uri="/struts-tags" prefix="s"%> ... <s:fielderror/> ``` Struts2的基础内容还包括但不限于以下几点: 1. Struts2概述:讲解了Struts2的发展历程和核心特性。 2. 简单的Struts2程序:介绍创建一个基本的Struts2应用的过程。 3. Struts2配置文件:讲解struts.xml配置文件的作用和配置项。 4. Struts2国际化:如何实现应用程序的多语言支持。 5. Struts2输入校验:本文重点,介绍了如何进行手动代码校验。 6. Struts2 OGNL:对象图导航语言,用于表达式解析。 7. Struts2拦截器:增强功能的组件,可以拦截并处理请求和响应。 8. Struts2类型转换:自动或自定义的Java类型转换机制。 9. Struts2标签库:提供丰富的标签来简化视图层的开发。 10. 访问数据库:如何在Struts2应用中操作数据库。 在开发Struts2应用时,通常需要从Apache官方网站下载所需的依赖库,如struts2-core、xwork、ognl、freemarker和logging等相关JAR文件。根据实际需求,可能还需要考虑集成其他框架的插件JAR文件,例如与Spring框架的集成。 Struts2为构建高效、可维护的Web应用程序提供了强大的工具和支持,而输入校验是保证数据安全性和应用程序健壮性的重要环节。通过手工编写校验代码,我们可以精确控制验证逻辑,确保用户输入的有效性和一致性。