变量在Play2模板上没有解释
-
02-01-2020 - |
题
我有Play2模板引擎的问题。在渲染过程中不会解释一些变量。
变量{key.getkey}在双重报价时不被解释。我如何解决这个问题?
播放2.2.3模板(index.scala.html)
@flash
@(if (flash.size > 0) {
flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius {key.getKey}" data-alert="">
{key.getKey.toUpperCase} — {key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
})
.
html输出:
{"success": "The item has been created"}
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius {key.getKey}" data-alert="">
SUCCESS — The item has been created
<a href="#" class="close">×</a>
</div>
</div>
</div>
.
播放2.2.3模板(index.scala.html)与@变量
@flash
@(if (flash.size > 0) {
flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
{key.getKey.toUpperCase} — {key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
})
.
html输出:
{"success": "The item has been created"}
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
SUCCESS — The item has been created
<a href="#" class="close">×</a>
</div>
</div>
</div>
. 解决方案
编辑:,因为它尚不清楚这是scala或java之前,我修改了我的答案与播放java一起工作。
似乎在Java中略有不同的模板工作,并且if
语句周围的括号搞乱了。无论如何,您真的不需要if
语句,因为映射一个空迭代器将无关。这有效:
@flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
@{key.getKey.toUpperCase} — @{key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
.
,如果你真的想要if
:
@if(flash.size > 0) {
(above code)
}
. 不隶属于 StackOverflow