Struts2手动输入校验详解:validate()与字段错误处理
需积分: 0 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应用程序提供了强大的工具和支持,而输入校验是保证数据安全性和应用程序健壮性的重要环节。通过手工编写校验代码,我们可以精确控制验证逻辑,确保用户输入的有效性和一致性。
2012-04-08 上传
2011-06-03 上传
2012-06-17 上传
点击了解资源详情
2012-12-29 上传
2019-04-18 上传
588 浏览量
2011-11-07 上传
韩大人的指尖记录
- 粉丝: 30
- 资源: 2万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载