Magnolia Blossom:共享同一区域的两页

时间:2013-02-20 15:54:08

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

我正在使用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类和脚本
  • 中定义了相同的区域

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

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

无论我尝试什么,只要在页面的模板类中没有定义区域,就无法访​​问这些区域,因此包含的页面不会渲染其区域。

有没有人知道我如何“包含”或处理另一个模板中的“区域”?或者我做错了吗?

感谢您的时间。

问候。

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但它仍然是一个有效的问题,所以让我回答一下: 据我所知,区域可以从其他区域继承(正常的Java类继承使用" extends ...")。据我所知,这在2013年尚未推出,但现在已经有了。我知道这是因为我将此作为功能请求提交一次,并且在某些时候标记为已解决,我认为我也成功使用过一次(不记得清楚)。

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