对于想了解第十四讲:tapestryform验证的读者,本文将提供新的信息,我们将详细介绍tapetest,并且为您提供关于第七讲:tapestry可预览的模板页、第三十一讲:tapestry表单组件
对于想了解第十四讲:tapestry form验证的读者,本文将提供新的信息,我们将详细介绍tape test,并且为您提供关于第七讲:tapestry可预览的模板页、第三十一讲:tapestry表单组件详解之FormFragment、第三十七讲:tapestry Ajax 表单 (form) 多 zone 组件、第三十七讲:tapestry Ajax 表单(form)多zone组件的有价值信息。
本文目录一览:- 第十四讲:tapestry form验证(tape test)
- 第七讲:tapestry可预览的模板页
- 第三十一讲:tapestry表单组件详解之FormFragment
- 第三十七讲:tapestry Ajax 表单 (form) 多 zone 组件
- 第三十七讲:tapestry Ajax 表单(form)多zone组件
第十四讲:tapestry form验证(tape test)
tapestry提供了表单验证,大大简化了我们手工编写验证代码的麻烦。常用验证有:required(必须的)、email(邮箱验证)、maxLength(最大字符数)、minLength(最小字符数)、max(最大值)、min(最小值)、regexp(正则表达式)。奇怪的是5.3.1验证有bug,5.3.2已经修复了....源码如下:
Validators1.java
Validators1.tml
Validators2.java
Validators2.tml
第七讲:tapestry可预览的模板页
tapestry模板页是*.tml文件,为了给美工美化静态页面带来更大方便,tapestry的所有组件都可以t:type写成类似htm可预览的代码l。例如:
<t:pagelink t:page="Index">index</pagelink>
可写成
<a href="#;" t:type="pagelink" t:page="Index">index</a>
其他的以此类推。
第九讲:tapestry pagelink组件
tapestry页面间的跳转使用了pagelink组件,等同于html的<a>节点。使用方法非常简单
第三十一讲:tapestry表单组件详解之FormFragment
http://flywind.org/newtechnologydetail/166第三十七讲:tapestry Ajax 表单 (form) 多 zone 组件
/**
*
*/
package corner.app.pages.ajax;
import java.util.Date;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.DateField;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.corelib.components.TextField;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Request;
import org.apache.tapestry5.services.ajax.AjaxResponseRenderer;
/**
* @author <a href="mailto:xf@bjmaxinfo.com">xiafei</a>
*
*/
public class AJAXFormMultipleZoneUpdate {
// Screen fields
@Property
private String firstName;
@Property
private String lastName;
@Property
private Date birthday;
// Generally useful bits and pieces
@Component
private Form ajaxForm;
@Component(id = "firstName")
private TextField firstNameField;
@Component(id = "lastName")
private TextField lastNameField;
@Component(id = "birthday")
private DateField birthdayField;
@InjectComponent
private Zone formZone;
@InjectComponent
private Zone outZone;
@Inject
private Request request;
@Inject
private AjaxResponseRenderer ajaxResponseRenderer;
// The code
void setupRender() {
if (firstName == null && lastName == null && birthday == null) {
firstName = "Humpty";
lastName = "Dumpty";
birthday = new Date(0);
}
}
void onValidateFromAjaxForm() {
if (firstName == null || firstName.trim().equals("")) {
ajaxForm.recordError(firstNameField, "First Name is required.");
}
if (lastName == null || lastName.trim().equals("")) {
ajaxForm.recordError(lastNameField, "Last Name is required.");
}
if (birthday == null) {
ajaxForm.recordError(birthdayField, "Birthday is required.");
} else {
Date now = new Date();
if (birthday.after(now)) {
ajaxForm.recordError(birthdayField,
"Birthday must be in the past.");
}
}
}
void onSuccess() {
if (request.isXHR()) {
ajaxResponseRenderer.addRender(formZone).addRender(outZone);
}
}
void onFailure() {
if (request.isXHR()) {
ajaxResponseRenderer.addRender(formZone);
}
}
public String getName() {
return firstName + " " + lastName;
}
public Date getTime() {
return new Date();
}
}
<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">
<h1>AJAX Form Multiple Zone Update</h1>
<noscript>
<span style="color: red;">
${message:javascript_required}<br/><br/>
</span>
</noscript>
This page demonstrates an AJAX-enabled Form that also updates another zone on success.<br/><br/>
<t:zone t:id="formZone" id="formZone">
<form t:id="ajaxForm" t:type="form" t:zone="formZone" style="border: 2px solid #eee; padding: 15px">
First Name: <input t:type="TextField" t:id="firstName"/><br/>
Last Name: <input t:type="TextField" t:id="lastName"/><br/>
Birthday: <input t:type="datefield" t:id="birthday"/><br/><br/>
<input type="submit" value="Accept"/><br/><br/>
<t:errors/>
</form>
</t:zone>
<t:zone t:id="outZone" id="outZone" style="border: 2px solid #eee; padding: 15px">
Welcome ${name}. Your birthday is ${birthday}
</t:zone>
</html>
第三十七讲:tapestry Ajax 表单(form)多zone组件
总结
以上是小编为你收集整理的第三十七讲:tapestry Ajax 表单(form)多zone组件全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
关于第十四讲:tapestry form验证和tape test的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于第七讲:tapestry可预览的模板页、第三十一讲:tapestry表单组件详解之FormFragment、第三十七讲:tapestry Ajax 表单 (form) 多 zone 组件、第三十七讲:tapestry Ajax 表单(form)多zone组件的相关信息,请在本站寻找。
本文标签: