Dezvoltat de | Apache Software Foundation |
---|---|
Prima versiune | 2000 și 11 februarie 2013 |
Ultima versiune | 5.4.5 (6 septembrie 2019) |
Depozit | git-wip-us.apache.org/repos/asf/tapestry-5.git |
Scris in | Java |
Mediu inconjurator | Multi-platformă |
Limbi | Engleză |
Tip | Cadrul web ( în ) |
Licență | Licență Apache 2.0 |
Site-ul web | http://tapestry.apache.org |
Tapestry este un cadru gratuit care facilitează construirea de aplicații web Java bazate pe Java EE (fostă J2E ) din componente .
Inițial creat de Howard Lewis Ship, proiectul Tapestry a fost integrat de Fundația Apache ca sub-proiect Jakarta, apoi a evoluat într-un proiect Apache complet. Tapestry are o arhitectură bazată pe componente, cu idei care pot fi găsite în special în cadrul Apple WebObjects .
Tapestry folosește XML / HTML pentru redarea paginilor și implementează logica în Java urmând modelul de proiectare MVC : Template Tapestry, Java Pages / Components, Java Services. Subliniază ușurința de utilizare. Prin conectivitate puternică între elementele paginii Web (șablon) și codul subiacent (Pagini / Componente Java), salvează dezvoltatorul de la scrierea unor blocuri uriașe de cod de legare , folosind mai degrabă paradigma convenției decât configurația .
O aplicație Tapestry se bazează pe Pagini configurate de Componente. O Pagină constă din două părți: Un XML (.tml) și o clasă Java (.java). XML permite inserarea etichetelor HTML din componente native Tapestry sau alte biblioteci terțe. De exemplu, un singur link de la o pagină la alta corespunde componentei PageLink.
Acest exemplu arată partea de internaționalizare a paginilor Tapestry cu variabila menționată în $ {message: title} care va fi preluată din fișierele .properties asociate în funcție de limba poziționată în browserul dvs. și un link către pagina implicită a site-ului (index ).
Pseudo-HTML-ul paginii site-ului (vizualizare): Example.tml
<t:layout title="${message:title}" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> <p>${message:text}</p> <t:pagelink page="index">${message:index}</t:pagelink> </t:layout>Clasa Java care implementează comportamentul paginii (control):
package org.exemples.pages; public class Exemple{ }Date din fișierul fr.properties în franceză:
title: Exemple text: Ceci est juste un test index: DébutEngleză en.properties data file:
title: my little example text: This is only a test index: Mainpage