Вопрос

У меня есть куча файлов JSP и серверная часть в Tomcat.У меня есть 3 разные версии JSP с одинаковой логикой внутри, но с разными макетами.Итак, если я изменю какую-то логику, мне придется исправить три файла JSP.

Каково правильное решение для такого сценария?Я подумал о стеке XML и XSLT:Серверная часть предоставляет только данные в формате XML, а для каждого макета у меня есть XSLT, который творит чудеса.

Представьте себе, что вам нужно обеспечить в JSP stackoverflow на разных языках.Логика та же, но схема другая.

Не могли бы вы указать мне какое-нибудь направление?

Это было полезно?

Решение

Узнайте о MVC (Model View Controller) и идее о том, что JSP должен быть его частью View и не должен содержать никакой логики.Логика принадлежит классу модели.

Другие советы

Обычно это решается использованием какого-либо шаблонизатора — вы создаете более мелкие фрагменты страниц, а затем объявляете шаблонизатору, что определенные представления должны состоять из этих частей, соединенных определенным образом.

Плитки Struts — классический пример в мире Java, но они действительно устарели и неудобны по сравнению с более современными платформами на Java и других языках.Гобелен и Калитка — два более современных (правда, ими не пользовался).

Хотя для всего лишь 3 страниц применение целого веб-фреймворка, вероятно, будет излишним, но если ваш сайт будет расти...

С простым старым JSP без каких-либо знаменитостей:

1) Используйте контроллеры для выполнения обработки и используйте JSP только для отображения данных

2) Использование JSP включает директивы для включения заголовка, навигации, меню, нижнего колонтитула и других необходимых общих/общих элементов для всех этих макетов.

Или/и:

Используйте следующее в web.xml

    <jsp-property-group>
        <url-pattern>/customers/*</url-pattern>
        <include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude>
        <include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda>
    </jsp-property-group>

Шаблон URL-адреса определяет, какие jsps получают какие фрагменты jsp (части в Ruby on Rails), прикрепленные сверху/снизу.

Взгляните на Тайлс.

Это очень классическая проблемная область, и существует множество концепций и фреймворков, которые пытаются решить эту проблему (фреймворки MVC, такие как Struts и JSF, а также SessionBeans).Поскольку я подозреваю, что вы на самом деле не являетесь «евангелистом Java» в сфере предпринимательства, я дам вам два простых совета.

  1. Очевидно, в ваших JSP много избыточного кода.Извлеките этот код в «настоящие» Java-классы и используйте их во всех своих JSP.Таким образом, вы сможете изменять бизнес-логику в одном месте, и избыточность станет меньшей проблемой.

  2. Взгляните на каскадные таблицы стилей (CSS).Это современный способ макетирования веб-страниц.Возможно, вам даже не понадобятся разные JSP для разных макетов, если у вас хорошо спроектирован html + CSS.

С уважением

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top