tapestry的Ajax使用很是简单,Ajax的页面无刷新,恰好解决了eventlink、actionlink等组件无刷新,这点在js应用中很是的强大。下面就于eventlink组件为例。源码以下:html
/**
* 项目名称:TapestryStart
* 开发模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
* 版本:1.0
* 编写:飞风
* 时间:2012-02-29
*/
package com.tapestry.app.pages;
import java.util.Date;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Request;
public class AJAXEventLink {
@Inject
private Request request;
@InjectComponent
private Zone time2Zone;
@SuppressWarnings("unused")
private Date serverTime1;
@SuppressWarnings("unused")
private Date serverTime2;
void onRefreshPage() {
}
Object onRefreshZone() {
return request.isXHR() ? time2Zone.getBody() : null;
}
public Date getServerTime1() {
return new Date();
}
public Date getServerTime2() {
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">
<div style="margin-left: 50px">
<a t:type="eventlink" t:event="refreshPage" href="#">页面须要刷新</a><br/>
<a t:type="eventlink" t:event="refreshZone" href="#" t:zone="time2Zone">页面无刷新</a><br/><br/>
serverTime1: ${serverTime1}
<t:zone t:id="time2Zone">
serverTime2: ${serverTime2}
</t:zone><br/>
</div>
</html>