совместное использование общих JSP в нескольких войнах в EAR

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


person Rakesh Goyal    schedule 26.09.2010    source источник


Ответы (1)


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

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

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

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

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

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

person skaffman    schedule 27.09.2010