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>
    }