Лекция № 7. Типовые решения в WEB. Представления в WEB. Основные типовые решения. Представление по шаблону (Template View). Представление с преобразованием (Transform View). Двухэтапное представление (Two Step View). Представление данных в WEB. Представление по шаблону (Template View) Преобразует результаты выполнения запроса в формат HTML путем внедрения маркеров в HTML-страницу Модель Book Author Вспомогательный объект getTitle() getAuthor() <HTML> <P> <B> <jsp: getProperty name "BookHelper" property="title" /> </B> <BR> Author: <jsp: getProperty name "BookHelper "property="author" /> </B> </P> <HTML> Представление по шаблону (Template View) Принцип действия. Основная идеи: 1. Вставка специальных маркеров в текст готовой статической HTML-страницы. 2. При вызове страницы эти маркеры заменяются результатами некоторой обработки 3. Подобная схема позволяет использовать редакторы, работающие по принципу WYSIWYG, и не требует знания программирования. 4. Для получения дополнительной информации программы, обрабатывающие маркеры, обращаются, к внешним источникам. Представление по шаблону (Template View) Вставка маркеров. Способы. Использование HTML-подобных дескрипторов. Этот способ хорошо подходит для редакторов, работающих по принципу WYSIWYG, так как они распознают элементы в <>, как специальное содержимое и обрабатываю его особым образом. 2. Вставка маркеров в тело страницы. В этом случае WYSIWYG редакторы воспринимают маркеры как текст и на этапе разработки дизайна все ок. В некоторых средах разработки набор таких маркеров предопределен заранее, но в большинстве случаев можно определять свои собственные маркеры и дескрипторы и вперед. 1. Представление по шаблону (Template View) Проблемы скриптлетов (scriptles). Одна из наиболее популярных форм представления по шаблону – это страницы сервера (server page) ASP, JSP, PHP, CSP и т. д. и т.п. С другой стороны технология серверных страниц – это несколько больше чем представление по шаблону. Серверные страницы позволяют внедрять в страницу элементы программной логики, которые называют скриптлетами (scriptles). Недостатки: это уже КОД, страница не самое хорошее место для размешения кода программы, самое страшное – это перемешивание слоев корпоративного приложения. Представление по шаблону (Template View) Проблемы скриптлетов - вспомогательный объект. Стандартное решение проблемы – это вспомогательный объект. Этот объект содержит в себе фактическую логику домена, а сама страница – только вызовы операций вспомогательного объекта. Преимущества такого подхода: Упрощение структуры страницы Разделение труда на этапе разработки Высокая степень согласованности страницы. Проблемы: Условное отображение Итерации. Представление по шаблону (Template View). Назначение Представление по шаблону и представление с преобразованием основные альтернативы для реализации представления в системе модель вид- контроллер. Основное преимущество этого типового решения состоит в том, что оно позволяет разрабатывать представления раздельно от логики домена при этом оформлять их в соответствии со структурой страницы. Недостатки: 1. Проблема переполнения страницы логикой. 2. Сложность тестирования. Ну и вспоминаем, что существует альтернатива в виде двухэтапного преобразования. Представления в WEB. Пример одноэтапного представления. "создать" Данные объекта Представление объекта HTML-код объекта Пример двухэтапного представления. "создать" Данные объекта Первый этап объекта Логический вид объекта "создать" HTML код объекта Второй этап объекта Представление данных в WEB. Представление с преобразованием (Transform View) Представление, которое поочередно обрабатывает элементы данных домена и преобразует их в код HTML Модель Artist Album Считывает Преобразователь Создает HTML transformAlbum() transformArtist() Представление с преобразованием (Transform View). Принцип действия. Идея: Создается программа, которая просматривает данные домена и преобразует их в код HTML. В процессе выполнения она последовательно проходит по структуре данных домена и, при обнаружении нового фрагмента данных, создает их описание в формате HTML. Основное отличие от представления по шаблону заключается в способе организации представления. Представление по шаблону организовано с учетом размещения выходных данных. Представление с преобразованием ориентированно на использование отдельных преобразований для каждого вида входных данных. Представление с преобразованием (Transform View). Назначение. Выбор между способом построения представлений в большей степени зависит от выбора среды, которую предпочитает команда, занимающаяся разработкой представлений. Ключевой момент наличие соответствующих средств. В этом плане у представления по шаблону имеется некоторые преимущества … Тем не менее достоинства, представления с преобразованием: 1. Хорошая переносимость практически на все платформы. 2. Преобразование сразу направлено на визуализацию данных в формате HTML и никакой логики на стороне страницы изначально нет 3. Такое представление легче тестировать, по сути применение таблицы стилей не требует даже наличия работающего WEBсервера. 4. Легкость и гибкость внесения изменений во внешний вид сайта. Представление с преобразованием (Transform View). Принцип действия. Преобразованиями управляет нечто наподобие простого цикла, который поочередно просматривает каждый входной элемент, подбирает для него преобразование и применяет это преобразование. Представление с преобразованием может быть написано на любом языке (в принципе), на практике в настоящий момент стандарт де-факто использование связки: XML – для описания логики данных домена, XSTL – для непосредственного выполнения преобразования. Проблема генерации кода XML … Представление данных в WEB. Двухэтапное представление (Two Step View) Выполняет визуализацию данных домена в два этапа: вначале формируется некоторое подобие логической страницы, затем логическая страница преобразуется в формат HTML. Album artist : Artist 1 Screen renderAlbum() renderArtist() artist : Field 2 renderScreen() renderField() HTML Двухэтапное представление (Two Step View). Принцип действия. Идея: Преобразование данный в формат HTML выполняется в два этапа. 1. Информация, полученная от модели, организуется в некоторую логическую структуру, которая описывает визуальные элементы будущего отображения, но не содержит кода HTML. Эта самая промежуточная структура есть некоторое подобие логического «экрана». Ее элементами могут быть: поля ввода, колонтитулы, таблицы, переключатели и т.д. Ее, в принципе, можно назвать – моделью представления. Наличие такой модели просто заставляет будущие страницы сайта следовать одному стилю. Для большей наглядности можно представить модель представления как систему, которая определяет элементы управления страницы и данные, которые в эти элементы пихаются, но не описывает их внешний вид с помощью HTML. 2. Логическая структура преобразуется в код HTML. Операции, задействованные на втором этапе «знают», какие элементы могут быть в логической структуре и как визуализировать эти элементы. Таким образом, система со множеством экранов-страниц, может быть преобразована в HTML путем единственного прохождения второго этапа, благодаря этому решение о преобразовании в HTML принимается в единственном месте. Все это возможно при соблюдении одного условия – логические экраны компонуются по единому принципу.