Struts2验证配置详解:validation.xml的两种方式
4星 · 超过85%的资源 需积分: 10 161 浏览量
更新于2024-10-17
收藏 7KB TXT 举报
在Struts2框架中,验证规则是确保用户输入符合预期的重要组成部分。本文将详细介绍两种配置`validation.xml`的方式,以实现对用户输入的有效校验。
首先,让我们了解Struts2中的`validation.xml`文件。这个XML文件通常位于项目的`/WEB-INF/validation`目录下,用于定义全局的验证规则和约束。在Struts2中,有两种主要的配置方式:
1. 基于注解的验证(Annotation-Based Validation):
- 在Struts2 2.3及更高版本中,Struts2引入了注解支持,使得我们可以直接在Java类的属性上添加`@Validated`、`@Required`等注解来定义验证规则。例如,在`UserBean.java`中,如果希望检查`firstname`、`lastname`和`age`字段,可以在这些字段上方添加相应的注解,如`@NotBlank`、`@Size(min=1, max=50)`等。
```java
package struts2.login.bean;
@Validated
public class UserBean {
private String firstname;
//...
@NotBlank(message = "First name is required")
private String firstname;
//...
//其他字段的注解配置
}
```
2. 传统XML配置(Classic XML Configuration):
- 对于早期版本的Struts2或者希望保留更传统的配置方式,可以继续使用XML文件来定义验证规则。在`validation.xml`中,每个元素代表一个验证结果处理器(Validator),需要指定对应的字段以及验证规则。例如:
```xml
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 2.0//EN" "http://struts.apache.org/dtds/xwork-validator-2.0.dtd">
<validators>
<field name="firstname">
<field-validator type="requiredstring">
<message>First name is required</message>
</field-validator>
</field>
<!-- 添加 lastname 和 age 的验证规则 -->
</validators>
```
然后在`struts.xml`中引用这个`validation.xml`,通常在`<action>`标签内,通过`<result>`标签的`validator`属性来启用验证:
```xml
<action name="login" class="struts2.login.LoginAction">
<result name="input">/login.jsp</result>
<result name="success">/success.jsp</result>
<interceptor-ref name="defaultStack"/>
<validator type="validation.xml" />
</action>
```
Struts2提供了两种配置`validation.xml`的方式,分别为基于注解的现代方法和传统的XML配置。选择哪种方式取决于项目的具体需求和团队的偏好。无论采用哪种方式,都需要确保验证规则能够正确地校验用户的输入,提高应用程序的健壮性和用户体验。
170 浏览量
243 浏览量
112 浏览量
2009-08-27 上传
2013-05-03 上传
156 浏览量
2019-04-02 上传
144 浏览量
xuelang2099
- 粉丝: 1
- 资源: 5