410013796724260
• Webmoney
R335386147728
Z369087728698
Шаблоны страниц tilesStruts2 облегчает программистам жизнь при разработке WEB-интерфейса, предоставляя возможность создании страниц с использованием шаблонов на основе библиотеки и плагина tiles java. Шаблоны помогают создать единый стиль приложения, повторно использовать одни и те же компоненты, а также упростить внесение изменений в дизайн сайта. Плагин struts2-tiles-pluginВ Stuts2 интеграция с tiles java реализована при помощи плагина struts2-tiles-plugin-*.jar. Для использования tiles необходимо дополнительно разместить следующие файлы в директории библиотек приложения WEB-INF/lib (звездочкой отмечены строки для версий библиотек) :
Кроме этого дополнительно необходимо в директории WEB-INF расположить библиотеку тегов struts-tiles.tld - Tag Library Descriptor (TLD). Библиотеку тегов можно разместить и в другом месте, но тогда необходимо будет ее прописать в дескрипторе приложения web.xml. Например : Фрагмент кода файла web.xml <taglib> <taglib-uri>/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tags/struts-tiles.tld</taglib-location> </taglib> Для того, чтобы использовать tiles в WEB приложении необходимо содать шаблон страницы. Шаблон страницы с использованием tilesШаблоны страниц — это JSP файлы, которые включают параметризированное содержание. Шаблоны реализованы с помощью набора тегов библиотеки struts-tiles.tld. Мы в нашем примере ограничимся только тегами insert, getAsString, put. Библиотека включает еще теги get, definition, putList, add, useAttribute, importAttribute, initComponentDefinitions, и желающие также могут их использвать в своих приложениях. Схематично интерфейс страницы с использованием шаблона представлен на следующем рисунке. Создадим шаблон страницы, который будет состоять из трех частей :
Таким образом, наш шаблон будет иметь заголовок header, центральную часть, разделенную на три сектора, и footer. Листинг шаблона Template.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> <html> <head> <title><tiles:getAsString name="title" ignore="true" /></title> </head> <body> <table border="1" width="100%"> <tr valign="top"> <td colspan="5"><insert attribute="header" ignore="true" /></td> </tr> <tr valign="top"> <td width="100"><tiles:insert attribute="menu"/></td> <td> </td> <td><tiles:insert attribute="body"/></td> <td> </td> <td width="100"><tiles:insert attribute="sidebar"/></td> <tr> <td colspan=5 height=20%><tiles:insert attribute="footer" /></td> </tr> </table> </body> </html> В файле Template.jsp мы определили структуру шаблона страниц WEB-приложения :
С помощью тега tiles:insert содержимое JSP-страниц будет вставляться в соответсвующий сектор шаблона. Если атрибут ignore установлен в true (ignore="true"), то tiles игнорирует соответствующие параметр, если он отсутствует. Иначе tiles выдаст ошибку и страница не будет сформирована. Наш шаблон Template.jsp представляет собой таблицу с именованными секторами (частями). Страницы на основе шаблонаДля создания нашей домашней страницы Home.jsp на основе шаблона Template.jsp необходимо вставить в сектора шаблона соответствующие JSP-страницы. Следующий код будет использован, чтобы создать страницу. Листинг домашней страницы Home.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> <tiles:insert page="Template.jsp" flush="true"> <tiles:put name="title" value="Домашняя страница" /> <tiles:put name="header" value="header.jsp" /> <tiles:put name="menu" value="menu.jsp" /> <tiles:put name="body" value="body.jsp" /> <tiles:put name="sidebar" value="sidebar.jsp" /> <tiles:put name="footer" value="footer.jsp" /> </tiles:insert> Страница Home.jsp создается на основе шаблона Template.jsp. Наименование атрибута тега put определяет сектор размещения страницы. В нашем случае заголовок страницы "title" определен как "Домашняя страница", в верхней части страницы (header) будет располагаться содержимое файла header.jsp и т.д. Теперь нам необходимо определить общие страницы всех файлов (header.jsp, footer.jsp, menu.jsp, sidebar.jsp) нашего сайта и для каждой страницы создать body.jsp. При необходимости изменения внешнего интерфейса страницы, нужно будет только изменить содержимое одного из файлов. Заголовок страницы header.jspЛистинг header.jsp <%@ page contentType="text/html; charset=UTF-8" %> <table cellSpacing=0 cellPadding=0 width="100%" border="0"> <tr> <td class=logo><img alt="logo" src="/images/logo.gif"></td> <td class=body> </td> </tr> </table> Заголовок страницы представляет собой таблицу, разделенную на две части для размещения логотипа и содержания. Меню страницы menu.jspЛистинг menu.jsp <%@ taglib uri="/struts-tags" prefix="s" %> <a href="<s:url action='Main'/>">Main Page</a><br> <a href="<s:url action='Books'/>">Books Shop</a> На странице меню мы подключили библиотеку тегов для вызова action-классов. Меню включает только два пункта - переходы на главную страницу и в книжный магазин. Ссылки переходов определяют вызов действий и представлены тегами <s:url ... /> |