Apache Tapestry-Ajax 구성 요소

AJAX는 Asynchronous JavaScript and XML. 다음의 도움을 받아 더 빠르고, 더 빠르고, 더 인터랙티브 한 웹 응용 프로그램을 만드는 기술입니다.XML, JSON, HTML, CSS,JavaScript. AJAX를 사용하면 웹 페이지를 다시로드하지 않고도 데이터를 비동기 적으로 보내고받을 수 있으므로 속도가 빠릅니다.

구역 구성 요소

영역 구성 요소는 콘텐츠 자체의 위치뿐만 아니라 콘텐츠 (마크 업)를 제공하는 데 사용됩니다. Zone Component의 본문은 Tapestry에서 내부적으로 콘텐츠를 생성하는 데 사용됩니다. 동적 콘텐츠가 생성되면 Tapestry는이를 클라이언트로 보내고 데이터를 올바른 위치에 다시 렌더링하고 HTML을 트리거하고 애니메이션하여 사용자의 관심을 끕니다.

이 영역 구성 요소는 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에 표시됩니다.