模拟一个注册验证的过程,来了解struts验证框架的使用。
Create the Action class.
新建 用户实体User 属性有:userName,name,age,email,homePage 并生成get,set以及toString
新建 Action类:RegisterAction ,添加属性user.并生成默认方法。
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
System.out.println("传入的对象:"+user);
return SUCCESS;
}
Create the input form.
新建 register.jsp:
<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>
</body>
成功界面:
<body>
注册成功!用户名:${user.userName }
</body>
Create the validators
需要注意的是,
1.文件名字格式:
<ActionClassName>-validation.xml
2.需要在开头写描述:<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">3.文件位置:放到ActionClass所在的包中
4.注意语法。
RegisterAction-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">10</param>
<message>用户名必须${minLength}到${maxLength}位</message>
</field-validator>
</field>
<field name="user.name">
<field-validator type="requiredstring">
<message>请输入真实姓名</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>
</validators>
struts.xml
确保有名字为"input"的action请求该需要验证的界面。
<package name="hello" extends="struts-default" >
<action name="registerAction" class="com.java.action.RegisterAction">
<result name="input">register.jsp</result>
<result name="success">success.jsp</result>
</action>
</package>
测试:
什么都不输提交:
用户名位数不对:
年龄不够18:
邮箱格式不对:
主页url格式不对
都正确:
控制台: