tiles,или привет шаблонные странички
Привет,сегодня я расскажу о такой замечательной штуке,как tiles. Часто почти всё время при создании сайта или простого веб-приложения возникает ситуация,когда есть одинаковые элементы у станиц,и естественно лень их каждый раз переписывать да и места они могут есть порядком и читабельности совсем не добавляют. неплохо было бы сделать нейкий шаблон,в который можно было бы подставлять только изменяемые части,а те,которые всё время одинаковые — подгружать. Для этого и придумали такую замечательную вещь как tiles.
придумаем нейкий дизайн страницы:
Тэкс. Тут у нас будет какая-то менюшка с кнопками,футер и какой-то контент который будем менять при переходе по страничкам. Ну-с с дизайном будем считать определились,перейдём к яве.
Создаём новый проект и подключаем к нему maven(либо сразу создаём maven-проект,либо испьзуем тот,что есть не суть важна). Подключаем к нему зависимости struts2-core и struts2-tiles-plugin. Мне удобнее описывать сначала дизайн,по-этому я с него и начну.
Тэкс,по-скольку у нас будет нейкий шаблон,то нам надо завести страничку,которая будет ядром шаблона и в которой будут описываться элементы этого шаблона. Создадим в папке WEB-INF папку tiles в ней создадим страницу baseLayout.jsp.Это и будет наш шаблон.
baseLayout.jsp
struts2.Начало.
Вечная проблема как назвать тему.Может и не красиво,не судите строго.Ладности,поехали.
Скачать библиотеки фреймворка можно по ссылке http://struts.apache.org/download.cgi Версия доступная на данный момент — 2.2.1.1. Так как нам в принципе нужна только папка lib(в ней хранятся библиотеки), то качаем Source. Распаковываем архив с фреймворком.
Получили всё что нам нужно и переходим к яве. Запускаем эклипс EE-версии и создаём новый Dynamic Web Project
В поле «Project Name» впишем название проекта. Я назову свой «FirstProject». Кликаем «Next». Попадаем на диалог подключения библиотек в проект. Он нам пока что не нужен,по этому снова кликаем «Next». Здесь Можно изменить имя корневой папки проекта и корневую папку веб-контента,но самое главное — здесь надо поставить галку «Generate web.xml deployment descriptor» если она не стоит. файл потом можно и вручную написать,но уж пускай ява сама сделает хоть немногое). Всё,теперь можно нажимать «Finish». Получили вот такую структуру проекта:
Теперь чего к чему. Когда сервер получает и\или запускает приложение,он ищет в директории WebContent/WEB-INF файл web.xml. файл web.xml — основной дескриптор(описатель) приложения.в нём прописываются все подключяемые фреймворки и их параметры а так же страница загружаемая первой. Это обычный XML-файл.
В Папке lib должны лежать библиотеки,необходимые для работы приложения. Ну и папка src для классов обработки.
тэкс.Теперь импортируем в папку lib необходимые библиотеки struts2.
Нам понадобятся:
- commons-fileupload-1.2.1.jar
- commons-io-1.3.2.jar
- commons-logging-1.1.jar
- freemarker-2.3.13.jar
- ognl-2.6.11
- struts2-convention-plugin-2.1.6.jar
- struts2-core-2.1.6.jar
- xwork-2.1.2.jar
Версии библиотек могут отличаться.
для того чтобы импортировать библиотеки нажимаем правой кнопкой мыши п опапке lib, и выбираем в появившемся меню пункт «Import». Появится окно:выбираем пункт «File system». нажимаем «Next». Появится следующее:кликаем на кнопке «Browse…» и выбираем путь к папке lib struts2.(Ту которую качали и разархивировали). В ней выбираем нужные нам библиотеки и нажимаем Finish. Библиотеки импортированы и доступны внутри приложения.
Далее необходимо объяснить серверу,что мы будем использовать struts2. Делается это в файле web.xml.
внутри тега web-app нужно написать следующее:
way-to-struts2
Для начала не плохо было бы наверное затронуть что такое вообще фреймворк и для чего он нужен struts2 в частности.
Сейчас я в очень общих чертах расскажу как всё работает и приведу базовые понятия.Для быстрого старта можно сразу перейти к следующей статье.
Фреймворк — это набор библиотек,помогающий и облегчающий разработку и объединение разных компонентов программного проекта. struts2 — одно из достаточного количества вариантов фреймворков для javaEE. Так же стоит упомянуть о таком понятии,как MVC-паттерн. Это то,с чем столкнётся любой WEB-программист. Паттерн(шаблон) — некоторое архитектурное решение приложения, которое помогает решить возникающие задачи одинаковой направленности. Наверно далеко не лучшее опрелеление,но это не тема данного топика (Это будет тема следующего топика,ибо веещь полезная и знать надо а в две-три строчки вмещать не хочется да и нет смысла)
Таки вернёмся к MVC. Расшифровывается это как Model-View-Controller.
И так. У нас есть Некоторая модель (Классы сущностей) Например класс User (Пользователь).
Представление — интерфейс имеется ввиду визуальные интерфейс.В нашем случае это будет страница в браузере.
И Контроллер — Класс,который обрабатывает запросы от вида(страницы) к приложению(логике работы). Запросами могут быть например переходы по ссылкам на страницах.
В Struts2 контроллером является класс-фильтр DispatcherServlet. Описывать его естесственно не надо.
То есть когда мы например на странице в браузере переходим по какой-нибудь ссылке типа «отобразить страницу о пользователе» на сервере класс DispatcherServlet перехватывает запрос, выполняет какие-то действия с моделью и отдаёт их для отображения на представление.
Смысл? А смысл всего этого,чтобы отделить представление(нашу страницу) от логики работы.То есть страница не знает о логике,она лишь отображает состояние модели(системы) в конкретное время. Контроллер нужен для того,чтобы провести какие-либо действия над моделью,если они необходимы,либо напрямую вызвать отображение
На этом пока всё)