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

来源:互联网 发布:finale mac 汉化 编辑:程序博客网 时间:2024/05/27 19:28


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 validatordate validatordouble validatoremail validatorexpression validatorfieldexpression validatorint validatorregex validatorrequired validatorrequiredstring validatorshort validatorstringlength validatorurl validatorvisitor validatorconditionalvisitor validator



0 0
原创粉丝点击