如何在freemarker中获得列表的大小?

问题描述 投票:0回答:1

我已经创建了一个内容模板,用户可以在其中创建多个卡/盒子。它很好用,但是如果用户仅创建一个盒子,我想更改CSS。我用getList()?size尝试过,但是没有用。知道如何证明大小是否为1?

<div id="my-cards">
    <#list boxen.getSiblings() as box>
     <#assign i = box.getList()?size>   
       <#if i==1>
       <p>There is one box</p>
       </#if>
        <!-- Card-->
        <div class="card-box mb-3">
            <!-- Image-->
            <div class="card-pic">
                    <#if box.image.getData() != "">
                    <img src="${box.image.getData()}" />
                </#if>
            </div>
            <!--  Content-->
            <div class="card-box-content">


                <#if box.headline.getData() != "">
                <h2 class="title">${box.headline.getData()}</h2>
                 </#if>

                 <#if box.content.getData() != "">            
                <p class="description">${box.content.getData()}</p>
                </#if>
                <div class="card-box-footer">
                    <br />

            </div>
        </div>

    </#list>   
</div>
java liferay freemarker
1个回答
0
投票

要获取列表的大小,必须使用list?size,这意味着此示例为boxen.getSiblings()?size。我认为box.getList()是无效的。

检查此示例:

   <#assign listA = ['one']>
   <#assign listB = ['one' , 'two']>
   <#list listA as element>
   <#if (listA?size = 1)>
     ${element}
   </#if>
   </#list>
   <#list listB as element>
   <#if (listB?size = 1)>
     ${element}
   </#if>
   </#list>

仅满足第一个条件,输出为:一个

© www.soinside.com 2019 - 2024. All rights reserved.