Struts2 输入校验详解:手工编写validate()方法
需积分: 0 68 浏览量
更新于2024-08-17
收藏 944KB PPT 举报
本文主要介绍了如何在Struts2框架中手工编写代码实现输入校验,以及Struts2框架的相关特点和优势。
在Struts2框架中,输入校验是保证数据安全性和应用稳定性的重要环节。通常,我们可以通过重写Action类的`validate()`方法来实现这一功能。`validate()`方法会检查与`execute()`方法签名相匹配的所有方法,当数据校验失败时,我们需要使用`addFieldError()`方法将错误信息添加到系统的`fieldErrors`集合中。如果`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`的结果,将失败请求转发到对应的视图,如`/addUser.jsp`:
```xml
<result name="input">/addUser.jsp</result>
```
在`addUser.jsp`页面中,引入Struts2标签库,并使用`<s:fielderror/>`标签来显示校验失败的错误信息:
```jsp
<%@taglib uri="/struts-tags" prefix="s"%>
...
<s:fielderror/>
```
Struts2框架由Craig R. McClanahan创建并捐献给Apache软件基金会,于2001年发布第一个版本。Struts2是在2005年推出的,是一个用于构建MVC应用程序的框架,提供了解决Web应用程序开发中常见问题的解决方案,包括页面导航、输入验证、统一布局、可扩展性、国际化和本地化、Ajax支持以及防止表单重复提交等功能。
Struts2相对于Struts1的优势在于:
1. 无侵入式设计,不强制依赖ServletAPI和StrutsAPI,使得应用更易于维护和升级。
2. 提供了拦截器机制,支持AOP编程,便于实现权限拦截等高级功能。
3. 内置类型转换器,简化了类型转换的处理,避免了Struts1中需要手动注册类型转换器的问题。
4. 支持多种视图技术,如JSP、FreeMarker、Velocity等,提供了更大的灵活性。
5. 输入校验可以针对特定方法进行,相比Struts1更为灵活。
6. 国际化资源文件管理功能完善,支持全局、包和Action级别的资源配置。
从Struts1升级到Struts2,主要变化包括从ActionServlet控制器转变为过滤器作为控制器,以及在设计和功能上的显著提升。这些改进使得Struts2更适合现代Web应用的开发需求。
2012-04-08 上传
2011-03-20 上传
2010-10-21 上传
点击了解资源详情
点击了解资源详情
2012-12-06 上传
2013-06-03 上传
点击了解资源详情
点击了解资源详情
正直博
- 粉丝: 48
- 资源: 2万+
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用