1

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

这就是我到目前为止的工作方式:

  • 我有三个模板main-templatetemplate-1template-2.
  • template-1并且template-2main-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类和脚本中定义了相同的区域

我想要的是在和area-1之间分享,可以说。问题是,通过在每个类中重新定义它们,它们被认为是不同的区域...... 通过我的测试和 magnolia 文档,我理解的是一个区域只能在模板类中定义,因此可以在脚本中访问它此模板的部分,并且只有在与页面关联的模板类中直接定义的区域才会被处理/呈现。 无论我尝试什么,只要这些区域未在页面的模板类中定义,它们就无法访问,因此包含的页面不会呈现它们的区域。 有没有人知道我如何在另一个模板中“包含”或处理来自其他模板的“区域”?还是我做错了?template-1template-2





感谢您的时间。

问候。

4

1 回答 1

0

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

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

于 2017-05-29T15:26:26.977 回答