Как я могу использовать HTML / JSP на странице? - PullRequest
7 голосов
/ 06 января 2010

Я новичок в JSP и пытаюсь сократить огромное количество вырезанного и вставленного кода.
На каждой странице проекта имеется около 25 строк смешанных JSP, тегов Struts, тегов JSTL и HTML, которые были вырезаны и вставлены в различных точках на странице. Эти ~ 25 строк повторно используемого кода даже отдаленно не похожи от страницы к странице (а там ~ 250 страниц), , но точно такие же на каждой странице . В конечном итоге этот код (бизнес-логика) должен быть удален из представления, но это будет большим проектом, чем позволяет мой график, поэтому мне интересно, есть ли простой способ повторно использовать Mixed Tags + JSP на странице, как временное исправление, позволяющее поэтапно проводить рефакторинг кода, если позволяет время.

Для ясности, я ищу способ инкапсулировать код без создания нового файла (/ local to page scope) - то есть он должен быть определен на той же странице, с которой вызывается.

Некоторые считают, что это можно сделать с помощью Tiles - если это так, пожалуйста, покажите мне, как это сделать.

Ответы [ 3 ]

7 голосов
/ 06 января 2010

Взгляните на плитки Apache . Поскольку вы работаете со Struts, я удивлен, что вы его еще не нашли. Это в основном шаблонизатор, и я думаю, что он соответствует вашим требованиям.

Уже предложенный <jsp:include> может использоваться с <jsp:param> для передачи переменных. Как

<jsp:include file="includedFile.jsp">
    <jsp:param name="username" value="jsmith" />
</jsp:include>

На самом деле, если вы хотите включить 1 файл в общий код, я бы рекомендовал простоту <jsp:include> по сравнению с мощью плиток.

2 голосов
/ 06 января 2010

вы можете создать один включаемый файл и jsp: включать его везде, где это необходимо. переменные части могут быть выполнены с помощью условных выражений jsp, атрибутов jstl EL или распорок EL.

Я бы не хотел перекодировать существующие страницы, хотя они уже работают.

1 голос
/ 06 января 2010

Плитки Struts лучше всего использовать в Struts для создания шаблонов конкретной страницы, поэтому нет необходимости кодировать часть, общую для всех страниц. См. http://struts.apache.org/1.x/struts-tiles/.

Более простым подходом, очень специфичным для JSP, является jsp: include, как обсуждалось выше.

Просто для информации существует третий подход, который является подходом директивы включения

Разница между директивой jsp: include и include заключается в следующем

Использовать директиву include (<@ include filelativeURL>) следует, только если 1) если файл содержит статический текст 2) если файл редко изменяется (механизм JSP может не перекомпилировать JSP, если этот тип включенного файла изменен) 3) если у вас есть общий фрагмент кода, который вы можете повторно использовать на нескольких страницах (например, верхние и нижние колонтитулы)

Нужно использовать jsp: include, только если 1) Содержимое включенного JSP является динамическим и может изменяться во время выполнения 2) выбрать, какой контент отображать во время выполнения (поскольку атрибуты page и src могут принимать выражения времени выполнения)

Надеюсь, это поможет вам принять решение.

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