本文主要介绍如何手工编写代码实现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应用程序提供了强大的工具和支持,而输入校验是保证数据安全性和应用程序健壮性的重要环节。通过手工编写校验代码,我们可以精确控制验证逻辑,确保用户输入的有效性和一致性。