您的位置:首页 > 编程语言 > Java开发

Struts2中输入效验

2016-04-22 17:28 232 查看
Struts2中常见的输入效验有一下三种

使用Javascript完成客户端效验

使用Javascript客户端需要编写Javascript 并且需要浏览器支持

function check(form){
with(form){
if(username.value == ""){
alert("用户名不能为空!");
return false;
}
if(password.value == ""){
alert("密码不能为空");
return false;
}

return true;
}
}

</script>


并要在表单中这样引用

<form class="form-signin" method="post" onsubmit="return check(this);"action="Login">


使用Validate方法进行输入效验

在action类中重写validate()方法,即可在该方法中完成输入效验,如:

@Override public void validate(){
if(username.length()==0){
addFieldError("username","yonghukong");
}
if(pass.trim().length()==0){
addFieldError("pass","没有输入值");
}else if(pass.trim().length()<3){
addFieldError("pass","长度不符合要求");
}
}


使用Struts2框架的输入效验

框架效验需要xml文件,若action的类名为CheckLogin,则该文件为CheckLogin-validation.xml,并且要与对应action位于同一目录下

1.使用字段效验的输入效验

一个完完整的效应配置文件

<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>用户名长度必须在${minLength}与${maxLength}之间</message>
</field-validator>
<field-validator type="requiredstring">
<message>用户名不能为空</message>
</field-validator>
</field>

<field name="password">
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>密码长度必须在${minLength}与${maxLength}之间</message>
</field-validator>
<field-validator type="requiredstring">
<message>密码不能为空</message>
</field-validator>
</field>
</validators>


2.非字段效验


<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>

<validator type="stringlength">
<param name="fieldName">username</param>
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>用户名长度必须在${minLength}与${maxLength}之间</message>
</validator>

<validator type="stringlength">
<param name="fieldName">password</param>
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>密码长度必须在${minLength}与${maxLength}之间</message>
</validator>

</validators>


3.效验器的短路

一个效验器设置short-circuit=”true” 如果这个校验器不通过,本字段后边的校验器不再运行

非字段校验器的优先级高于字段校验器,非字段校验器按照定义的顺序首先运行,然后字段校验器按照定义的顺序运行。

非字段校验不通过,后边所有字段的校验器都不会运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: