【问题标题】:activeweb ContentFor tag render nothing?activeweb ContentFor 标签什么都不渲染?
【发布时间】:2019-08-07 09:15:54
【问题描述】:

我已经阅读了 activeweb 文档的content for and yield tag 部分。和activeweb版本

16:59 $ mvn dependency:tree | grep activeweb
[INFO] +- org.javalite:activeweb:jar:2.2:compile
[INFO] +- org.javalite:activeweb-testing:jar:2.2:test

layout.ftl 模板代码列表如下:

{
"ext": [<@yield to="ext"/>],
"data": ${page_content}
}

和查看页面:

<@content for="ext">
"hello", "world"
</@content>
["this is data"]

我运行控制器,ext 什么也不渲染。我错过了什么?

顺便说一句,我如何检查 ContentForTag 是否包含一些内容?,我希望 layout.ftl 看起来像

{
<#if ext?has_content?>
"ext": [<@yield to="ext"/>],
</#if>
"data": ${page_content}
}

【问题讨论】:

    标签: javalite activeweb


    【解决方案1】:

    你有一个两部分的问题:

    1. 我创建了@ContentFor 标记,但它没有呈现任何内容。
    2. 如何有条件地呈现其内容。

    要回答您的第一个问题,我可以说不确定为什么它不适合您。我根据您的代码创建了一个相同的示例,它按预期工作。请查看 ActiveWeb 简单项目 content_for 分支上的最后一次提交:https://github.com/javalite/activeweb-simple/tree/content_for 您可以运行此项目来查看您的代码是否正常运行。

    要回答您的第二个问题,您需要在视图中使用条件,而不是在布局中。 因此,视图将如下所示:

    <#if condition >
        <@content for="ext">
        "hello", "world"
        </@content>
        ["this is data"]
    </#if>
    

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多