如何实现struts2中xml验证:
* 建立Jsp页面,定义需求
* 用户名不能为null ,""
* 密码不能为null, "" 并且密码的长度6-12之间
* 定义action
public class ValidateXmlAction extends ActionSupport {
private String username;
private String psw;
public void setUsername(String username) {
System.out.println("setUsername方法");
this.username = username;
}
public String login(){
System.out.println("login方法");
return "success";
}
public String test(){
System.out.println("test方法");
return "success";
}
}
* 在struts_validate.xml文件中增加如下配置
<action name="validateXmlAction_*" class="cn.itcast.validate.ValidateXmlAction" method="{1}">
<result name="success">/validate/success.jsp</result>
<!-- 验证出错要转向的错误页面 -->
<result name="input">/validate/loginxml.jsp</result>
</action>
* 测试
* 创建xml验证文件
* 验证的规范规范在xwork-core-2.1.6.jar\xwork-validator-1.0.3.dtd
* 验证规则的配置文件:xwork-core-2.1.6,jar\com\opensymphony\xwork2\validator\validators\default.xml
* 对action中所有的方法进行验证
* xml文件名称定义的格式: actionClassName-validation.xml
* actionClassName是请求的action的简单类名
* -validation.xml固定写法
* 该xml文件要和action放置在同一个目录下
* 本例为:ValidateXmlAction-validation.xml
* 配置如下 :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<!--
field:字段验证
* name="username":要验证的action中的属性,这里是ValidateXmlAction的username属性
-->
<field name="username">
<!--
这里验证用户名不能为空
field-validator:指定验证器
type:验证规则:validator name="requiredstring"
class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"
-->
<field-validator type="requiredstring">
<!-- 调用RequiredStringValidator中的setTrim(true) -->
<param name="trim">true</param>
<!-- 验证出错的提示信息 -->
<message><![CDATA[用户名不能为空]]></message>
</field-validator>
</field>
<field name="psw">
<!--
这里验证用户名不能为空
field-validator:指定验证器
type:验证规则:validator name="requiredstring"
class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"
-->
<field-validator type="requiredstring">
<!-- 调用RequiredStringValidator中的setTrim(true) -->
<param name="trim">true</param>
<!-- 验证出错的提示信息 -->
<message><![CDATA[密码不能为空]]></message>
</field-validator>
<!-- 验证密码的长度在6-12之间
validator name="regex"
class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator" -->
<field-validator type="regex">
<param name="expression"><![CDATA[^[a-zA-Z0-9]{6,12}$]]></param>
<message><![CDATA[密码的长度应该在6-12之间]]></message>
</field-validator>
</field>
</validators>
* 对action指定的方法进行验证
* xml文件名称定义的格式: actionClassName-actionName-validation.xml
* actionClassName是请求的action的简单类名
* actionName:请求的action的名称
* -validation.xml固定写法
* 该xml文件要和action放置在同一个目录下
* 本例为:ValidateXmlAction-validateXmlAction_login-validation.xml
* 配置如下 :
* 在jsp页面时
* 使用 <s:fielderror/>显示错误信息
* 测试