第十四讲:tapestry form验证

tapestry提供了表单验证,大大简化了我们手工编写验证代码的麻烦。常用验证有:required(必须的)、email(邮箱验证)、maxLength(最大字符数)、minLength(最小字符数)、max(最大值)、min(最小值)、regexp(正则表达式)。奇怪的是5.3.1验证有bug,5.3.2已经修复了....源码如下:

Validators1.java

/**
* 项目名称:TapestryStart
* 开发模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
* 网址: http://www.flywind.org
* 版本:1.0
* 编写:飞风
* 时间:2012-02-29
*/
package com.tapestry.app.pages;
 
import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.beaneditor.Validate;
 
public class Validators1 {
 
@Property
@Validate("required")
private String firstName;
 
@Property
@Validate("required")
private String lastName;
 
@InjectPage
private Validators2 validators2;
 
Object onSuccess(){
validators2.set(firstName, lastName);
return validators2;
}
}
 

Validators1.tml

<html t:type="layout" title="tapestryStart Index"  t:sidebarTitle="Framework Version"
 xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter">
<t:form>
<t:errors/>
姓:<input t:type="textField" t:id="firstName" value="firstName"/><br/>
名字:<input t:type="textField" t:id="lastName" value="lastName"/><br/>
<input type="submit" value="提交"/>
</t:form>
</html>

Validators2.java

/**
* 项目名称:TapestryStart
* 开发模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
* 网址: http://www.flywind.org
* 版本:1.0
* 编写:飞风
* 时间:2012-02-29
*/
package com.tapestry.app.pages;
 
public class Validators2 {
 
private String firstName;
 
private String lastName;
 
public void set(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
 
public String getName(){
return firstName + " " + lastName;
}
 
String[] onPassivate(){
return new String[]{firstName, lastName};
}
 
void onActivate(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
 
 
}
 

Validators2.tml

<html t:type="layout" title="tapestryStart Index"  t:sidebarTitle="Framework Version"
 xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter">
姓名:${name}<br/>
<t:pagelink page="Validators1">返回</t:pagelink>
</html>

http://localhost/Validator/Validators1

你可能感兴趣的:(第十四讲:tapestry form验证)