2008-09-25 3 views
1

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

Что такое правильный сценарий для такого сценария? Я думал о некоторых XML и XSLT стеках: backend дает только данные в XML, и чем для каждого макета у меня есть XSLT, который делает некоторую магию.

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

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

ответ

1

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

1

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

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

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

1

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

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 определяет, какие ЯОРН получить какие фрагменты JSP (обертоны в Ruby On Rails), прикрепленные к нижней/верхней части.

0

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

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

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

С уважением

Смежные вопросы