【问题标题】:Sharing JSPs between EARs在 EAR 之间共享 JSP
【发布时间】:2011-01-27 22:23:49
【问题描述】:

是否可以在 EAR 之间共享 JSP,类似于我们可以使用 .jar 文件在 EAR 之间共享 Java 文件的方式?

我在 JBoss 上有一个带有许多不同 EAR 的大型 J2EE 应用程序,它们都应该具有相同的页眉、页脚等...我不想在需要进行更改时多次复制和粘贴这些文件.

【问题讨论】:

  • 这可以使用速度模板引擎来实现,通过从远程 url 加载模板(由开箱即用的速度支持) - 这可能会让您了解一些熟悉的 jsp
  • @inquisitor 不幸的是,有数千个 JSP,因此移植到不同的技术是不可行的。

标签: java jsp struts tiles ear


【解决方案1】:

标签文件可以打包在 jar 中。

它们是带有“.tag”扩展名的 JSP 文件。它们可以参数化。

【讨论】:

    【解决方案2】:

    我从未尝试过,但从逻辑上讲,您可以通过将所有 JSP 放入一个公用文件夹来很好地做到这一点

    【讨论】:

      【解决方案3】:

      我认为它是访问与您所在的不同的 servlet 上下文。类似于

      Enterprise.ear
        WAR1 /somewhere
        WAR2 /somewhereElse
        WAR3 /shared
      

      假设 WAR1 中的 JSP 绑定到 /somewhere:

      使用 c:import 标记(标准 JSTL 标记)的可选 'context' 属性引用共享上下文。默认情况下 c:import 使用它所在的上下文,在 war1 中是 /somewhwere。

      <c:import url="/header.jsp"  context="/shared"/>
      

      可能还有其他方法......也许只是忽略你的耳朵,直接使用完整的 http 请求:

      <c:import url="http://www.somewhere.com/header.jsp"/>
      

      我不确定 c:import 标记上 context 属性的语法。但我相信这是正确的语法(没有斜线诗句,可能没关系)。

      【讨论】:

      • 这很接近,但在呈现之前我需要 JSP。例如,其中一个文件是我的 Struts Tiles 定义的模板。
      【解决方案4】:

      使用站点网格。 无需更改现有应用程序中的任何内容。与 sitemesh 进行一场新的战争。它可以动态地装饰来自多个 url 的内容。

      http://raibledesigns.com/rd/entry/use_sitemesh_to_decorate_multiple

      --Kiran.kumar

      【讨论】:

        猜你喜欢
        • 2011-09-08
        • 1970-01-01
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 1970-01-01
        • 2011-08-01
        • 2015-11-12
        相关资源
        最近更新 更多