Java 玩框架:在模板中定义变量?
我正在向模板传递一个Java 玩框架:在模板中定义变量?,java,scala,playframework,playframework-2.0,template-engine,Java,Scala,Playframework,Playframework 2.0,Template Engine,我正在向模板传递一个事件对象,我需要做的是检查@Event.getSeverity值。如果该值为正值,我想将特定的涂成绿色。如果该值为负值,我想将特定的涂成红色 我找不到定义变量的方法。可能吗?我想应该是这样。 无论如何,最简单的方法是什么 谢谢如中所述,您可以使用@defining帮助程序 @defining(if (event.getSeverity > 0) "green" else "red") { color => <div style="background
事件
对象,我需要做的是检查@Event.getSeverity
值。如果该值为正值,我想将特定的
涂成绿色。如果该值为负值,我想将特定的
涂成红色
我找不到定义变量的方法。可能吗?我想应该是这样。无论如何,最简单的方法是什么 谢谢如中所述,您可以使用
@defining
帮助程序
@defining(if (event.getSeverity > 0) "green" else "red") { color =>
<div style="background-color: @color">foo</div>
}
在scala模板中试试这个
@import java.math.BigInteger; var i=1; var k=1
和字符串
@import java.lang.String; val name="template"
问题方面
@import java.lang.String; var color="red"
@if(event.getSeverity>0){
@{color="green"}
}
<div style="background-color: @color">foo</div>
@import java.lang.String;var color=“红色”
@如果(event.getSeverity>0){
@{color=“green”}
}
福
另一种变体。如果在导入部分后声明,则可以正常工作。否则可能会导致一些错误(“未找到值”)
@import play.i18n.Messages
@进口型号。客户
@客户=@{customers.allAccepted()}
...
@如果(customers.size()>0){
@for(customer)“for”理解有时也很有用:
用于(很好。非常感谢。注意,每次都可以使用可重用块。这可能使包含必须计算的数据变得不切实际。但是鉴于定义是多么混乱,您可以考虑创建一个可重用的块,该块在第一次运行时生成数据,将来使用缓存的副本。但是,这使T变得复杂。他使用了可重用的块。希望未来版本的Play能够更清晰地定义变量。这是否真的意味着模板编译器不允许简单地将scala代码放入html
style
属性中?如何使用此块?然后可以在模板中重复调用颜色吗?非常好!在模板中可以更改变量@{i=5}
这实际上是如何工作的?@matt检查它如何解决这个问题的条件方面?!您不需要将定义的变量引用为@customers吗?它已经被引用为customers
。在@for()
语句中。(每个语句只能使用一个@
符号。)
@import java.lang.String; var color="red"
@if(event.getSeverity>0){
@{color="green"}
}
<div style="background-color: @color">foo</div>
@import play.i18n.Messages
@import models.Customers
@customers = @{Customers.allAccepted()}
...
@if(customers.size()>0) {
<ul>
@for(customer <- customers) {
<li>
<a href="/filters/customer/@customer.id">@customer.name</a>
</li>
}
</ul>
}