【问题标题】:Magnolia Blossom : Two pages sharing the same areaMagnolia Blossom : 两个页面共享同一个区域
【发布时间】:2013-02-05 17:06:00
【问题描述】:

我正在为我的 Web 应用程序使用 Magnolia Spring Integration (Blossom),但我绝对不明白如何(如果可能的话)在两个页面之间共享一个独特的区域。

这就是我迄今为止的工作方式:

  • 我有三个模板main-templatetemplate-1template-2
  • template-1template-2 都通过重新定义自己的 "body" 区域重定向到 main-template
  • template-1 的班级中,我有三个领域:content-areaarea-1area-2
  • template-1 的脚本中,我将三个区域包含在以下指令中:[@cms.area name="content-area"/][@cms.area name="area-1"/]
  • [@cms.area name="area-2"/]
  • template-2 类和脚本中定义了相同的区域

我想要在template-1template-2 之间分享area-1。问题是,通过在每个类中重新定义它们,它们被视为不同的区域......

通过我的测试和 magnolia 文档,我了解到一个区域只能在模板类中定义,因此可以在该模板的脚本中访问它,并且只有在与页面关联的模板类中直接定义的区域才会是处理/渲染。

无论我尝试什么,只要这些区域未在页面的模板类中定义,它们就无法访问,因此包含的页面不会呈现它们的区域。

有没有人知道我如何在另一个模板中“包含”或处理来自其他模板的“区域”?还是我做错了?

感谢您的宝贵时间。

问候。

【问题讨论】:

    标签: spring content-management-system freemarker area magnolia


    【解决方案1】:

    我知道这是一个老问题,但它仍然是一个有效的问题,所以让我回答一下: 据我所知,区域可以从其他区域继承(使用“扩展...”的普通 Java 类继承)。据我所知,这在 2013 年还没有,但现在可以了。我知道这一点是因为我曾将其作为功能请求提交一次,并且在某个时候被标记为已解决,而且我想我也成功使用过一次(记不太清了)。

    如果由于某种原因仍然无法从超类扩展区域,那么您仍然可以使用传统工具,例如将逻辑放入辅助类并使实际区域非常小(即调用共享辅助类)。并且实际的模板(.jsp 或 .ftl 文件)无论如何都可以共享。

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2019-04-02
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多