如何在Scala模板中遍历flash元素?

db2dz4w8  于 2023-03-18  发布在  Scala
关注(0)|答案(2)|浏览(140)

我有一个艰难的时间试图翻译一点模板从1.2.4到2.0。
到目前为止,我设法循环了所有的flash元素,但是我希望分别获得Key和Message(@msgKey包含一个列表,我不知道如何拆分它:/)=〉(success, Your data has been updated)
下面是原始代码:

#{if flash.data.size() > 0}
    #{list items:flash.data, as:'msg'}
        #{if msg.key.substring(0, 4).equals('info')}#{set msg_type:'info' /}#{/if}
        #{if msg.key.substring(0, 4).equals('succ')}#{set msg_type:'success' /}#{/if}
        #{if msg.key.substring(0, 4).equals('warn')}#{set msg_type:'warning' /}#{/if}
        #{if msg.key.substring(0, 4).equals('erro')}#{set msg_type:'error' /}#{/if}
        <div class="alert alert-${msg_type}" data-dismiss="alert">  
            <a title="Close that message" class="close">×</a>
            ${msg.value.raw()}
        </div>
    #{/list}
#{/if}

这是新的

@if(!flash.isEmpty()) {
    @for(msgKey <- flash) { 
        <div class="alert alert-@msgKey" data-dismiss="alert">      
            <a title="@Messages("misc.message.close")" class="close">×</a>
            @msgKey
        </div>
    }
}
eoxn13cs

eoxn13cs1#

除了Mariussolution之外,您还可以编写以下代码:

@if(!flash.isEmpty()) {
    @for((msgKey, msgValue) <- flash) { 
        <div class="alert alert-@msgKey" data-dismiss="alert">      
            <a title="@Messages("misc.message.close")" class="close">×</a>
            @msgKey
        </div>
    }
}
xwmevbvl

xwmevbvl2#

闪存中的数据是一个Map,迭代它会产生一个由两个元素组成的元组:key和value,可以使用@msgKey._1访问key,使用@msgKey._2访问value。

相关问题