嵌套区域木兰



好吧,我正在制作自己的模块,并希望与一些孩子一起创建一个嵌套区域。片刻,我像

一样创建自己的巢
<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 feed:

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

我想做的(遵循此链接(:

@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";
    }
}

它给了我错误:传递"内容"参数,但没有指定。有人可以启发我还是指导我如何正确地?

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

获得所需的结果:

  • 将顶部区域定义为单一组件区域(可能具有自动生成的组件,以便它始终在中(和
  • 在上面定义的组件中,定义您想要的嵌套区域。

问题是您仅在控制器中定义了嵌套区域。您还应该将它们嵌套在模板中:

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

pages/areas/contentFeed.ftl的内容:

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

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

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

最新更新