Apache Tapestry - страницы и компоненты

Приложение Tapestry - это просто набор страниц Tapestry. Они работают вместе, чтобы сформировать четко определенное веб-приложение. Каждая страница будет иметь соответствующий шаблон XML и ноль, один или несколько компонентов. Страница и Компонент одинаковы, за исключением того, что Страница является корневым компонентом и обычно создается разработчиком приложения.

Components are children of the root Pagecomponent. Tapestry имеет множество встроенных компонентов и позволяет создавать собственные компоненты.

Страницы

Как обсуждалось ранее, страницы являются строительными блоками приложения Tapestry. Страницы представляют собой простые объекты POJO, размещенные под -/src/main/java/«package_path»/pages/папка. Каждая страница будет иметь соответствующийXML Template и его местоположение по умолчанию - /src/main/resources/«package_name»/pages/.

Вы можете видеть здесь, что структура пути аналогична для страницы и шаблона, за исключением того, что шаблон находится в Resource Folder.

Например, страница регистрации пользователя в приложении Tapestry с именем пакета - com.example.MyFirstApplication будут следующие файлы страницы и шаблона -

  • Java Class -

    /src/main/java/com/example/MyFirstApplication/pages/index.java

  • XML Template -

    /src/main/resources/com/example/MyFirstApplication/pages/index.tml

Давайте создадим простой Hello Worldстраница. Во-первых, нам нужно создатьJava Class в - /src/main/java/com/example/MyFirstApplication/pages/HelloWorld.java ».

package com.example.MyFirstApplication.pages; 
public class HelloWorld { 
}

Затем создайте шаблон XML в -

«/Src/main/resources/com/example/MyFirstApplication/pages/helloworld.html».

<html xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"> 
   <head> 
      <title>Hello World Page</title> 
   </head> 
   <body> 
      <h1>Hello World</h1> 
   </body> 
</html>

Теперь эта страница доступна по адресу https://localhost:8080/myapp/helloworld. Это простая страница с гобеленом. Tapestry предлагает гораздо больше возможностей для разработки динамических веб-страниц, которые мы обсудим в следующих главах.