在EAR的多次战争中共享共同的jsp

我们有一个有13个模块的大型应用程序。 根据客户要求,我们应该能够部署核心模块+客户特定模块。 我们计划将应用程序分成多个战争。 现在的问题是我们有一些常见的jsp,比如header.jsp,error.jsp等。有没有什么方法可以让我们在核心战争中保持常见的jsp,其余的战争将能够使用它或者我必须复制这些jsp在构建过程中的原始战争中。 我知道CSS和Javascript文件可以在耳塞包装的多个战争中共享,但不确定jsp的。

好问题。 您会很高兴听到答案是“是”,尽管它高度依赖于您的servlet容器的配置方式。

它是使用JSTL 标记完成的,该标记具有可选的context属性,定义如下:

用于从中导入资源的其他一些本地Web应用程序的上下文的名称(以/开头)。

所以说你在上下文根/A下部署了webapp /A ,在/B下部署了webapp /B ,那么A中的JSP可以包含来自B的x.jsp

  

这一切都很好,很好,但这必须通过servlet容器的安全机制,并且可能不允许操作。 例如, 在Tomcat中, crossContext属性必须设置为true