Apache Tapestry Ajax 组件


AJAX 代表 异步 JavaScript 和 XML .它是一种借助 XML、JSON、HTML、CSS、 and JavaScript . AJAX 允许你在不重新加载网页的情况下异步发送和接收数据,因此速度很快。

区域组件


区域组件用于提供内容(标记)以及内容本身的位置。 Tapestry 内部使用 Zone 组件的主体来生成内容。生成动态内容后,Tapestry 会将其发送到客户端,在正确的位置重新渲染数据,触发 HTML 并制作动画以吸引用户的注意力。

此 Zone 组件与 EventLink 组件一起使用。 EventLink 可以选择使用 t:zone 属性。在 EventLink 中配置区域后,单击 EventLink 将触发区域更新。此外,EventLink 事件 (refreshZone) 可用于控制动态数据的生成。

AJAX的一个简单例子如下:

AjaxZone.tml

<html t:type = "Newlayout" title = "About MyFirstApplication" 
    xmlns:t = "http:// Tapestry.apache.org/schema/tapestry_5_4.xsd"
    xmlns:p = "tapestry:parameter">
   
    <body>
        <h1>Ajax time zone example</h1>
        <div class = "div1">
            <a t:type = "eventlink" t:event = "refreshZone" href = "#"
                t:zone = "timeZone">Ajax Link </a><br/><br/>
            <t:zone t:id = "timeZone" id = "timeZone">Time zone: ${serverTime}</t:zone>
        </div>
    </body>
   
</html> 

AjaxZone.java

package com.example.MyFirstApplication.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 AjaxZone { 
    @Inject
    private Request request;
   
    @InjectComponent
    private Zone timeZone;
   
    void onRefreshPage() {
    }
   
    Object onRefreshZone() {
        return request.isXHR() ? timeZone.getBody() : null;
    }
   
    public Date getServerTime() {
        return new Date();
    }
} 

结果将显示在:http://localhost:8080/MyFirstApplication/AjaxZone

Ajax Time Zone