variable print operator name for elvis java scala playframework playframework-2.0 template-engine

java - print - ¡Jugar! marco: definir una variable en plantilla?



thymeleaf th name (4)

" para " las comprensiones también pueden ser útiles algunas veces:
@for(id <- products.keys; product = products(id); author = product.author.getOrElse("N/A")) {... @product.name ... @author

Esta pregunta ya tiene una respuesta aquí:

Estoy pasando a una plantilla un objeto de Event y lo que necesito hacer es verificar el valor @event.getSeverity . si el valor es positivo, quiero colorear un <div> específico en verde. si el valor es negativo, quiero colorear un <div> específico en rojo.

No pude encontrar una manera de definir una variable. ¿Es posible? debería ser, creo.
De todos modos, ¿cuál es la forma más sencilla de lograr esto?

Gracias


Como se indica en la documentación de Play , puede utilizar el asistente @defining .

@defining(if (event.getSeverity > 0) "green" else "red") { color => <div style="background-color: @color">foo</div> }

O puedes usar un reusable block

@severityColor(event: Event) = @{ if (event.getSeverity > 0) "green" else "red" } <div style="background-color: @severityColor(event)">foo</div>


Otra variante. Funciona bien si se declara después de la sección de importación. De lo contrario puede causar algunos errores ("valor no encontrado")

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


prueba esto en la plantilla de scala

@import java.math.BigInteger; var i=1; var k=1

y para cuerda

@import java.lang.String; val name="template"

en cuestión de aspecto

@import java.lang.String; var color="red" @if(event.getSeverity>0){ @{color="green"} } <div style="background-color: @color">foo</div>