Различные макеты и i18n в приложении JSP - PullRequest
1 голос
/ 25 сентября 2008

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

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

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

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

Ответы [ 5 ]

1 голос
/ 25 сентября 2008

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

1 голос
/ 25 сентября 2008

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

Плитка Struts является классическим примером в мире Java, но на самом деле она становится устаревшей и жесткой по сравнению с более современными фреймворками на Java и других языках. Tapestry и Wicket - два более современных (хотя они еще не использовались).

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

1 голос
/ 25 сентября 2008

С простой старой JSP без каких-либо видов фейерверков:

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

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

Или / и:

Используйте следующее в 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) присоединяются к верху / низу.

0 голосов
/ 26 сентября 2008

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

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

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

Привет

0 голосов
/ 25 сентября 2008

Посмотрите на плитки.

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