совместное использование JSP в нескольких войнах в EAR - PullRequest
5 голосов
/ 26 сентября 2010

У нас большое приложение с 13 модулями.В зависимости от требований заказчика, мы должны иметь возможность развернуть основной модуль + специфичные для клиента модули.Мы планируем разбить приложение на несколько войн.Теперь проблема в том, что у нас есть некоторые общие jsp, такие как header.jsp, error.jsp и т. Д. Есть ли способ сохранить общие jsp в основной войне, и остальные войны смогут использовать его, или я должен скопировать этиJSP в невидимых войнах в процессе сборки.Я знаю, что файлы CSS и Javascript могут совместно использоваться несколькими войнами в упаковке ушей, но не уверен насчет jsp.

1 Ответ

4 голосов
/ 27 сентября 2010

Хороший вопрос.Вы будете рады услышать, что ответ «да», хотя он сильно зависит от того, как настроен ваш контейнер сервлета.

Это делается с помощью тега JSTL <c:import>, который имеет необязательный contextатрибут, который определяется как:

Имя контекста (начиная с /) какого-либо другого локального веб-приложения, из которого импортируется ресурс.

Итак, у вас естьвеб-приложение A развернуто в контексте корня /A, а веб-приложение B развернуто в /B, тогда JSP в A может включать x.jsp из B с использованием:

<c:import context="/B" url="x.jsp"/>

Это все очень красиво и радужноно это должно пройти через механизм безопасности контейнера сервлета, и это может не разрешить операцию.Например, в Tomcat атрибут crossContext должен быть установлен на true.

...