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

struts2学习笔记(九)struts2内置校验

2015-08-15 11:57 417 查看
1.要校验的pojo

public class User {

private String userName;

private String name;
private int age;

private String email;

private String homePage;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getHomePage() {
return homePage;
}

public void setHomePage(String homePage) {
this.homePage = homePage;
}

}


2.Action类

public class RegisterAction extends ActionSupport{

private static final long serialVersionUID = 1L;

private User user;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public String execute(){
System.out.println("注册用户:"+user);
return SUCCESS;
}
}


3.struts.xml配置

<package name="manager" extends="struts-default">
<action name="registerAction" class="com.skymr.struts2.chapter3.action.RegisterAction">
<result name="success">/regSuc.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>


名为input的result是校验不通过时跳转的页面.

4.jsp代码

<s:actionerror/>
<s:form action="registerAction" method="post">
<s:textfield name="user.userName" label="用户名"></s:textfield>
<s:textfield name="user.name" label="姓名"></s:textfield>
<s:textfield name="user.age" label="年龄"></s:textfield>
<s:textfield name="user.email" label="邮件"></s:textfield>
<s:textfield name="user.homePage" label="主页"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>


<s:actionerror/>是表达式校验不通过时显示信息,不写这行而校验不过则不会显示错误信息.

5. validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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="user.userName">
<field-validator type="requiredstring">
<message>请填写用户名</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">20</param>
<message>用户名长度在6-20之间</message>
</field-validator>
</field>
<field name="user.name">
<field-validator type="requiredstring">
<message>请填写姓名</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">20</param>
<message>姓名长度在6-20之间</message>
</field-validator>
</field>

<field name="user.age">
<field-validator type="int">
<param name="min">18</param>
<message>年龄必须大于18岁</message>
</field-validator>
</field>
<field name="user.email">
<field-validator type="requiredstring">
<message>请填写邮件地址</message>
</field-validator>
<field-validator type="email">
<message>邮件地址格式不正确</message>
</field-validator>
</field>
<field name="user.homePage">
<field-validator type="requiredstring">
<message>请填写主页</message>
</field-validator>
<field-validator type="url">
<message>主页格式不正确</message>
</field-validator>
</field>
<validator type="expression">
<param name="expression">!user.name.equals(user.userName)</param>
<message>用户名和姓名不能相同</message>
</validator>
</validators>


ps:

必须在文件开头加入语法行:

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

文件命名方式为 action类名+"-validation.xml"

如Action名为RegisterAction,则校验配置文件名为RegisterAction-validation.xml.

doc文档里有有关校验的详解.

conversion validator
date validator
double validator
email validator
expression validator
fieldexpression validator
int validator
regex validator
required validator
requiredstring validator
short validator
stringlength validator
url validator
visitor validator
conditionalvisitor validator
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: