2017-05-31 85 views
0

那么我正在制作我自己的模块,并且正在寻找与一些孩子创建嵌套区域。在那一刻,我创造我自己的窝状嵌套区域Magnolia

<div id="feedGroup"> 
    [@cms.area name="example"/] 
    [@cms.area name="feed"/] 
</div> 

我的一个领域:

@Area("example") 
    @AvailableComponentClasses({Example.class}) 
    public static class ExampleArea { 

     @RequestMapping("/main/example") 
     public String render() { 
      return "pages/areas/example.ftl"; 
     } 
    } 

我FTL例如:

[@cms.component content=component/] 

我FTL饲料:

[#list components as component] 
    [@cms.component content=component/] 
[/#list] 

我想做什么(按照link):

@Area("feed") 
@Controller 
@AvailableComponentClasses({ContentFeed.class}) 
public static class ContentFeedArea { 

    @Area("example") 
    @AvailableComponentClasses({Example.class}) 
    public static class ExampleArea { 

     @RequestMapping("/main/example") 
     public String render() { 
      return "pages/areas/example.ftl"; 
     } 
    } 

    @RequestMapping("/main/contentFeed") 
    public String render() { 
     return "pages/areas/contentFeed.ftl"; 
    } 
} 

它给我的错误:'内容'参数已通过,但没有或错误地指定。有人可以启发我或指导我如何正确?

回答

0

IIRC区域不能有嵌套区域,因为它是直接的孩子。

为了实现所需的结果:

  • 限定顶部区域作为单分量区(可能具有该组分甚至自动生成所以它总是在),并在上述所定义组分
  • ,定义嵌套你想要的区域。
0

问题是您只在控制器中定义了嵌套区域。你也应该巢他们在模板:

内容的 pages/areas/contentFeed.ftl
<div id="feedGroup"> 
    [@cms.area name="feed"/] 
</div> 

<div> 
    [@cms.area name="example"/]  
</div> 

模板pages/areas/example.ftl应该是:

[#list components as component] 
    [@cms.component content=component/] 
[/#list]