### Struts 2.0 知识点总结
#### Struts 配置文件中的 `scope` 属性
在 Struts 应用程序中,`struts-config.xml` 文件用于配置框架的各种行为,其中包括了 ActionForm 的作用域设置。在该文档中提到的一个常见疑问是关于 `scope` 属性的默认值。
**默认值:** `session`
尽管某些开发工具如 MyEclipse 在代码提示时可能显示 `request` 作为 `scope` 的默认值,但实际上如果在配置文件中不明确指定 `scope` 值的话,默认情况下它会被设为 `session`。这意味着 ActionForm 的实例将在 HTTP Session 的范围内共享,而非每次请求都会创建一个新的实例。这种设计有利于数据的持久化和维护状态信息,但同时也需要注意避免在多用户环境中可能产生的数据混淆问题。
#### 简单 Struts 应用示例
文档中给出了一种简单的 Struts 应用实现方案,包括以下几个步骤:
1. **首页显示“添加新用户”的链接**:这是应用程序的入口,用户通过点击这个链接进入添加用户的流程。
2. **转发请求到添加用户的 JSP 页面**:当用户点击“添加新用户”链接后,服务器会将请求转发至包含用户输入表单的 JSP 页面。
3. **数据合法性检查**:在用户提交表单后,系统会进行数据合法性检查。如果所有输入都符合预定义的规则,则数据将被保存;否则,将显示错误消息,并允许用户修改输入。
4. **保存数据并返回首页**:一旦数据通过验证,将保存到文件或数据库中,并重定向回首页。
5. **错误处理**:如果数据未通过验证,则用户将返回到添加用户的页面,并看到相应的错误提示。
#### 数据验证方式
Struts 提供了多种数据验证的方式,文档中提到了两种主要的方法:
1. **使用 Struts Validator 框架**
- **配置文件**:通过在 `validator-rules.xml` 文件中配置验证规则,可以实现对 ActionForm 中的数据进行自动验证。这种方式通常需要结合资源文件使用,以便提供友好的错误信息展示。
- **验证规则示例**:文档中给出了多种类型的验证规则,如 `required`(必填)、`maxlength`(最大长度)、`minlength`(最小长度)等,以及针对特定数据类型如日期、邮箱地址的验证。
2. **自定义验证**:另一种方式是在 ActionForm 类中实现自定义的验证逻辑。当验证失败时,可以通过向 `actionErrors` 集合中添加错误信息的方式来进行错误处理。如果 `actionErrors` 不为空,通常会跳转到指定的页面以展示错误信息。
#### validation.xml 示例
文档中还提供了一个 `validation.xml` 文件的简单配置示例,用于演示如何定义具体的验证规则。下面是一个关于密码长度验证的例子:
```xml
<formset>
<form name="UserForm">
<field property="password" depends="required,maxlength,minlength">
<arg0 key="UserForm.password"/>
<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
</form>
</formset>
```
此配置表明了对 `UserForm` 表单中 `password` 字段的验证规则:必填项、最大长度不超过12个字符、最小长度不少于6个字符。此外,还提供了电子邮件验证的配置示例,其 `depends` 属性应设置为 `email`。
通过以上总结,我们可以了解到 Struts 2.0 框架的一些核心概念和实践方法,包括配置文件的关键属性、简单的应用程序构建步骤以及数据验证的两种常用方法。这些知识点对于理解并运用 Struts 2.0 进行 Web 开发非常重要。