Статьи

Руководство по Struts 2: руководство по плагину Struts 2 Tiles с примером в Eclipse

Добро пожаловать в Часть 4 серии из 7 частей, где мы рассмотрим различные аспекты Struts2 Framework с некоторыми полезными примерами. В предыдущей части мы рассмотрели Struts2 Validation Framework . Мы увидели, как легко интегрировать валидацию в ваше приложение struts2.

В этой части мы обсудим Tiles Framework и его интеграцию со Struts2. Мы добавим поддержку Tiles в наше приложение HelloWorld Struts, которое мы создали в предыдущих частях. Я настоятельно рекомендую вам просмотреть предыдущие статьи и загрузить исходный код нашего примера приложения.

 

Введение в Tiles 2

В настоящее время веб-сайт, как правило, делится на части многоразового шаблона, которые отображаются на разных веб-страницах. Например, сайт, содержащий верхний колонтитул, нижний колонтитул, меню и т. Д. Эти элементы остаются неизменными на всем сайте и придают ему общий вид. Очень трудно жестко закодировать это на каждой веб-странице, и если позднее необходимо внести изменения, то все страницы необходимо изменить. Поэтому мы используем механизм шаблонизации. Мы создаем общий колонтитул, нижний колонтитул, страницу меню и включаем его в каждую страницу.

Плагин Tiles позволяет создавать шаблоны и создавать компоненты. На самом деле оба механизма похожи: вы
определяете части страницы («плитки»), которые вы собираете, чтобы создать другую часть или полную страницу. Часть может
принимать параметры, разрешающие динамическое содержимое, и может рассматриваться как метод на языке JAVA. Tiles — это система шаблонов, используемая для поддержания единообразного внешнего вида всех веб-страниц веб-приложения. Это увеличивает возможность повторного использования шаблона и уменьшает дублирование кода.

Общий макет веб-сайта определен в центральном файле конфигурации, и этот макет можно распространить на все веб-страницы веб-приложения.

Наш макет приложения

Наша цель — добавить заголовок, нижний колонтитул и меню в наше приложение StrutsHelloWorld. Ниже будет макет же.

Требуемые файлы JAR

Чтобы добавить поддержку Tiles в наше приложение Struts2, нам потребуется несколько jar-файлов. Ниже приведен список JAR в нашем примере. Добавьте эти файлы JAR в папку WEB-INF / lib.

Настройка плиток в web.xml

Чтобы настроить Tiles, запись для слушателя должна быть сделана в web.xml. Откройте файл web.xml из папки WEB-INF и добавьте в него следующий код.

	<listener>
<listener-class>

org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
<context-param>
<param-name>tilesDefinitions</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>

</context-param>

Приведенный выше код настраивает прослушиватель Tiles в web.xml. Входной файл конфигурации /WEB-INF/tiles.xml передается в качестве аргумента. Этот файл содержит определение Tiles для нашего веб-приложения.

Создайте файл tile.xml в папке WEB-INF и скопируйте в него следующий код.

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="baseLayout" template="/BaseLayout.jsp">
<put-attribute name="title" value="" />

<put-attribute name="header" value="/Header.jsp" />
<put-attribute name="menu" value="/Menu.jsp" />

<put-attribute name="body" value="" />
<put-attribute name="footer" value="/Footer.jsp" />

</definition>
<definition name="/welcome.tiles" extends="baseLayout">
<put-attribute name="title" value="Welcome" />

<put-attribute name="body" value="/Welcome.jsp" />
</definition>
<definition name="/customer.tiles" extends="baseLayout">

<put-attribute name="title" value="Customer Form" />
<put-attribute name="body" value="/Customer.jsp" />

</definition>
<definition name="/customer.success.tiles" extends="baseLayout">
<put-attribute name="title" value="Customer Added" />

<put-attribute name="body" value="/SuccessCustomer.jsp" />
</definition>
</tiles-definitions>

Здесь, в tile.xml, мы определяем шаблон baseLayout . Этот макет содержит такие атрибуты, как заголовок, заголовок, текст, меню и нижний колонтитул. Затем макет расширяется и определяются новые определения для страницы приветствия и страницы клиента. Мы переопределили макет по умолчанию и изменили содержимое для Тела и Заголовка.

Создание JSP

Мы определим шаблон для нашего веб-приложения в файле JSP с именем BaseLayout.jsp. Этот шаблон будет содержать различные сегменты веб-страницы (верхний колонтитул, нижний колонтитул, меню и т. Д.). Создайте 4 новых файла JSP BaseLayout.jsp, Header.jsp, Menu.jsp и Footer.jsp и скопируйте следующее содержимое в каждый из них.
BaseLayout.jsp

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><tiles:insertAttribute name="title" ignore="true" /></title>

</head>
<body>
<table border="1" cellpadding="2" cellspacing="2" align="center">
<tr>

<td height="30" colspan="2"><tiles:insertAttribute name="header" />
</td>
</tr>

<tr>
<td height="250"><tiles:insertAttribute name="menu" /></td>
<td width="350"><tiles:insertAttribute name="body" /></td>

</tr>
<tr>
<td height="30" colspan="2"><tiles:insertAttribute name="footer" />

</td>
</tr>
</table>
</body>
</html>

Header.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
<h2>Struts2 Example - ViralPatel.net</h2>

Menu.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
<s:a href="customer-form">Customer</s:a>

Footer.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
Copyright &copy; ViralPatel.net

Изменения в Struts.xml

В struts.xml мы определили тег результата, который сопоставляет конкретное действие со страницей JSP. Теперь мы изменим его и сопоставим результат с Tiles. Ниже будет содержание файла struts.xml.

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />

<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources"
value="ApplicationResources" />

<package name="default" extends="struts-default" namespace="/">
<result-types>
<result-type name="tiles"

class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="login"
class="net.viralpatel.struts2.LoginAction">

<result name="success" type="tiles">/welcome.tiles</result>
<result name="error">Login.jsp</result>
</action>

<action name="customer"
class="net.viralpatel.struts2.CustomerAction">
<result name="success" type="tiles">/customer.success.tiles</result>

<result name="input" type="tiles">/customer.tiles</result>
</action>
<action name="customer-form">
<result name="success" type="tiles">/customer.tiles</result>

</action>
</package>
</struts>

Struts.xml теперь определяет новый тип результата для плиток. Этот тип результата используется в теге <result> для различных действий. Также обратите внимание, что мы определили новую форму клиента. Это просто пустое объявление для перенаправления пользователя на страницу формы «Клиент», когда она щелкает ссылку «Клиент» в меню.

Это все люди

Скомпилируйте и выполните приложение в Eclipse и убедитесь, что верхний и нижний колонтитулы меню правильно применены.
Страница приветствия с

клиентской страницей Tiles и

клиентской страницей успеха Tiles

Скачать исходный код

Нажмите здесь, чтобы загрузить исходный код без файлов JAR (11 КБ)

Двигаться дальше

Сегодня мы увидели, как мы можем настроить Tiles Framework с помощью приложения Struts2. В следующей части мы поговорим о перехватчиках Struts2 и увидим пример этого. Надеюсь, вам понравилась эта статья. Не стесняйтесь оставлять свои запросы и комментарии в разделе комментариев.

 

От: http://viralpatel.net/blogs/