Struts中利用配置文件进行输入校验,其实是挺简单的,只是时间长了有些基本语法容易淡忘。今天特意抽点时间来把这点东西写写(常用的验证),可以说也算是对这块知识的进一步的巩固吧!如果 以后在用到这块知识也可以翻出来看看。
1、对生日的验证:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>date Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:350px">
<h3>Enter your birthdate</h3>
<s:form action="Date2">
<s:textfield name="birthDate" label="Birth Date"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class DateTestAction extends ActionSupport {
private Date birthDate;
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="birthDate">
<field-validator type="date">
<param name="max">1/1/2000</param>
<message>
You must have been born before the year 2000 to register
</message>
</field-validator>
</field>
</validators>
2、Email地址的输入验证
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>email Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:350px">
<h3>Enter your email</h3>
<s:form action="Email2">
<s:textfield name="email" label="Email"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class EmailTestAction extends ActionSupport {
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="email">
<field-validator type="email">
<message>Invalid email</message>
</field-validator>
</field>
</validators>
3、表达式的输入验证
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>expression Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:400px">
<s:actionerror/>
<h3>Enter the minimum and maximum temperatures</h3>
<s:form action="Expression2">
<s:textfield name="min" label="Minimum temperature"/>
<s:textfield name="max" label="Maximum temperature"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class ExpressionTestAction extends ActionSupport {
private int min;
private int max;
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<validator type="expression">
<param name="expression">
max > min
</param>
<message>
Maximum temperature must be greater than Minimum temperature
</message>
</validator>
</validators>
4、整形数据的输入验证:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>int Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:350px">
<h3>Enter a year</h3>
<s:form action="Int2">
<s:textfield name="year" label="Year (1990-2009)"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class IntTestAction extends ActionSupport {
private int year;
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="year">
<field-validator type="int">
<param name="min">1990</param>
<param name="max">2009</param>
<message>Year must be between 1990 and 2009</message>
</field-validator>
</field>
</validators>
5、URL地址的输入验证:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>url Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:350px">
<h3>What is your website?</h3>
<s:form action="Url2">
<s:textfield name="url" label="URL" size="40"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class UrlTestAction extends ActionSupport {
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="url">
<field-validator type="url">
<message>Invalid URL</message>
</field-validator>
</field>
</validators>
6、利用正则表达式进行输入的验证(这个方法比较灵活,不管是什么样的都能够通过正则表达式进行匹配):
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>regex Validator Example</title>
<style type="text/css">@import url(css/main.css);</style>
<style>
.errorMessage {
color:red;
}
</style>
</head>
<body>
<div id="global" style="width:350px">
<h3>Enter a phone number</h3>
<s:form action="RegEx2">
<s:textfield name="phone" label="Phone (xxx-xxx-xxxx)"/>
<s:submit/>
</s:form>
</div>
</body>
</html>
package com.erong.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class RegExTestAction extends ActionSupport {
private String phone;
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="phone">
<field-validator type="regex">
<param name="expression">
<![CDATA[\d\d\d\-\d\d\d\-\d\d\d\d]]>
</param>
<message>
Invalid phone number or invalid format
</message>
</field-validator>
</field>
</validators>
分享到:
相关推荐
XML方式通常在struts.xml或相应的action类配置文件中定义,而注解方式则直接在Action类的属性上标注,例如使用`@RequiredString`、`@Size`等。 4. **自定义校验器**:如果内置的校验器无法满足特定需求,开发者可以...
本文将深入探讨Struts2中的输入校验机制,以及如何对指定方法进行输入校验。 在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但...
Struts2集成Apache Commons Validator,允许开发者创建XML配置文件来定义校验规则。在这些XML文件中,你可以设置字段的校验规则,如长度、格式等。然后在Action类中声明对应的ActionForm,Struts2会基于这些规则进行...
总的来说,Struts2提供了灵活且强大的数据校验机制,无论是在XML配置文件中定义,还是利用注解,甚至自定义校验逻辑,都能有效地保证Action中各个方法的输入数据合法,从而提高应用程序的稳定性和安全性。...
当用户提交表单时,Struts2会调用`validate`方法进行校验。如果校验失败,Struts2会自动重定向到`input`视图(即`register.jsp`),并在页面上显示错误信息(通过`s:fielderror`标签)。 6. **struts.xml配置**: ...
对于不喜欢或不适用注解的开发者,Struts2还支持通过XML配置文件定义校验规则。在struts.xml或相应的action配置文件中,可以定义`<validators>`元素来指定校验规则。例如,可以定义`<field>`元素来指定字段名,然后...
在Struts2中,输入校验有两种主要方式:基于注解的校验和基于配置文件的校验。 1. **基于注解的校验**:通过在Action类的属性上添加JSR-303或JSR-349的Bean Validation注解,如`@NotNull`、`@Size`等,Struts2会...
总之,Struts2的输入校验机制是其强大功能的一部分,通过合理利用这些机制,可以有效地防止因非法输入引发的问题,提高应用程序的安全性和稳定性。在开发过程中,应始终重视输入校验,确保每个用户交互都经过有效的...
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
在进行Struts2输入校验时,还需要注意以下几点: - **错误处理**:当验证失败时,应有适当的错误处理机制,如返回错误消息或重定向到特定页面。 - **分层验证**:考虑在客户端(如JavaScript)和服务器端都进行...
- 在Action类中,定义需要校验的字段,并添加`@Validated`注解或者使用Struts2的XML配置文件来指定需要校验的属性。 - 创建一个ValidatorForm或者继承ActionSupport的Action类,这些类包含了内置的校验逻辑。 - ...
**使用Struts2进行输入校验的步骤** 1. **定义验证规则**: 在Action类或ActionForm中定义验证规则,或者在XML配置文件中声明。 2. **创建校验配置文件**: 创建一个XML文件(通常名为struts-validation.xml或struts...
本篇文章将详细探讨Struts2中基于配置文件的形式进行基本校验的方法。 首先,Struts2的数据验证分为两种方式:Action级别验证和拦截器级别验证。本文主要关注的是Action级别的验证,通过配置文件来定义验证规则。...
- XML配置:在`struts.xml`或相应的Action配置文件中,使用`<validators>`标签定义自定义校验器,通过`<field-validator>`指定需要应用该校验器的字段。 - 注解配置:在Action类的属性上使用自定义注解,通过注解...
Struts2的校验框架会根据这些规则对用户输入进行检查,并在验证失败时返回错误信息。验证结果可以用于页面显示或者控制流程。 在实际示例中,你可能有一个名为`UserAction`的Action,其中包含`username`和`password...
在Struts2中,校验框架是基于Action类的,每个Action类可以关联一个或多个校验配置文件,这些文件通常以.xml或.properties格式存在。这些文件定义了字段级别的验证规则,如非空检查、长度限制、数据类型检查等。当...
8.2 利用配置文件进行输入校验方法说明 157 8.2.1 Struts2字段校验的配置文件形式 158 8.2.2 Struts2非字段校验的配置文件形式 161 8.2.3 Struts2输入校验出错信息的国际化配置形式 163 8.3 集合类型输入校验介绍 ...