Когда использовать View Preparer для плиток - PullRequest
4 голосов
/ 16 мая 2009

Я новичок в JSP и Tiles, а также в Java. В настоящее время мы переформатируем наш сайт, используя их, но меня смущает вопрос, когда что-то должно быть добавлено в средство подготовки представления по сравнению с контроллером.

Например, текущая страница, над которой я работаю, будет иметь плитку для разбиения на страницы, включая тип контента (X из Y тип контента). Мой первоначальный план состоял в том, чтобы использовать View Preparer, чтобы взять данные, отправляемые контроллером (HashMap), и вывести пару атрибутов для мозаики разбиения на страницы, но сотрудник сказал мне, что это следует сделать в контроллере.

Если это так, в чем смысл View Preparer? Я просто немного смущен. Я проверил документы Tiles, и они довольно простые / непригодные.

Может ли кто-нибудь дать мне подходящий вариант использования View Preparer?

1 Ответ

4 голосов
/ 16 мая 2009

Контроллер предназначен для выполнения бизнес или транзакционной логики. То есть в ответ на действие пользователя приложение должно выполнить одно или несколько действий, а затем решить, какое представление следует визуализировать. Вот почему он называется контроллером, потому что он «контролирует» поток приложения. Когда контроллер выполняет свою работу, изменения в данных должны стать видимыми для пользователя. Однако подготовка этих данных для отображения не является задачей контроллера. Просто убедитесь, что необходимые действия выполнены и данные доступны.

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

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

Думайте об этом больше как о манипулировании данными для просмотра, а не бизнес-логики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...