5

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

4

1 回答 1

4

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

它是使用 JSTL<c:import>标记完成的,该标记具有一个可选context属性,该属性定义为:

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

因此,假设您将 webapp A 部署在 context root 下/A,并将 webapp B 部署在 下/B,那么 A 中的 JSP 可以x.jsp使用 B 包含:

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

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

于 2010-09-27T15:49:33.453 回答