18
Play Framework – Generación Vistas con Twirl Christian Portilla Pauca

05 . generacion de vista con plantillas twirl en play framework

Embed Size (px)

Citation preview

Page 1: 05 .  generacion de vista con plantillas twirl en play framework

Play Framework – Generación Vistas con Twirl

Christian Portilla Pauca

Page 2: 05 .  generacion de vista con plantillas twirl en play framework

Contenidos

Motor de Plantillas Twirl Revision Sintaxis: el caracter magico

‘@’ Parametros de plantilla Iteracion Bloque If Declarando bloques reusables

Importar expresiones Comentarios Escape de caracteres Casos de uso de plantillas Diseño Tags Includes

Page 3: 05 .  generacion de vista con plantillas twirl en play framework

Motor de plantillas

El motor de plantillas esta basado en Scala. Twirl, un poderoso motor de plantillas basado en Scala

Page 4: 05 .  generacion de vista con plantillas twirl en play framework

Twirl

Compacto, expresivo y fluido Facil de Aprender No un nuevo lenguaje Editable en cualquier editor La plantilla no es un lugar para escribir logica compleja

Page 5: 05 .  generacion de vista con plantillas twirl en play framework

Revision

Una plantilla de scala es un simple texto en scala HTML, XML, o csv. El sistema de plantillas ha sido diseñado para sentirse confortable Las plantillas son compiladas como funciones estandard de scala

Page 6: 05 .  generacion de vista con plantillas twirl en play framework

Sintaxis: el caracter magico ‘@’

La plantilla de scala usa @ como un simple caracter especial

Hello @customer.getName()!

Hello @(customer.getFirstName() + customer.getLastName())!

Page 7: 05 .  generacion de vista con plantillas twirl en play framework

Parametros de plantilla

Una plantilla es como una funcion

@(title: String = "Home")

@(title:String)(body: Html)

Page 8: 05 .  generacion de vista con plantillas twirl en play framework

Iteracion

se puede usar la palabra "for"

<ul>@for(p <- products) { <li>@p.getName() ([email protected]())</li>}</ul>

Page 9: 05 .  generacion de vista con plantillas twirl en play framework

Bloque If

Los bloques if no son nada especial

@if(items.isEmpty()) { <h1>Nothing to display</h1>} else { <h1>@items.size() items!</h1>}

Page 10: 05 .  generacion de vista con plantillas twirl en play framework

Declarando bloques reusables

Se puede crear bloques de codigo reusable:

@display(product: models.Product) = { @product.getName() ([email protected]())}

<ul>@for(product <- products) { @display(product)}</ul>

Page 11: 05 .  generacion de vista con plantillas twirl en play framework

Importar expresiones

se puede importar cualquier cosa que se desee

@(customer: models.Customer, orders: List[models.Order])

Page 12: 05 .  generacion de vista con plantillas twirl en play framework

Comentarios

se puede escribir un bloque de comentario en las plantillas usando @* *@:

@********************* * This is a comment * *********************@

Page 13: 05 .  generacion de vista con plantillas twirl en play framework

Escape de caracteres

Por defecto, los contenidos dinamicos con escapados en funcion al tipo de plantilla (HTML o XML)

<p> @Html(article.content)</p>

Page 14: 05 .  generacion de vista con plantillas twirl en play framework

Casos de uso de plantillas

Las plantillas, son simples funciones, que pueden estar compuestas en muchas formas que se desee.

Page 15: 05 .  generacion de vista con plantillas twirl en play framework

Diseño

Se puede declarar un plantilla views/main.scala.html que actuara como una plantilla de diseño base:

@(title: String)(content: Html)<!DOCTYPE html><html> <head> <title>@title</title> </head> <body> <section class="content">@content</section> </body></html>

Page 16: 05 .  generacion de vista con plantillas twirl en play framework

Tags

Se puede escribir un tag simple views/tags/notice.scala.html

@(level: String = "error")(body: (String) => Html)

@level match { case "success" => { <p class="success"> @body("green") </p> } case "error" => { <p class="error"> @body("red") </p> }}

Page 17: 05 .  generacion de vista con plantillas twirl en play framework

Includes

Se puede solo llamar a alguna otra plantilla que se desee <h1>Home</h1>

<div id="side"> @common.sideBar()</div>

Se puede definir una variable en la plantilla principal de esta forma:@(title: String, scripts: Html = Html(""))(content: Html)

Se puede extender la plantilla tal como se necesita en un script extra: @scripts = { <script type="text/javascript">alert("hello !");</script> }

Page 18: 05 .  generacion de vista con plantillas twirl en play framework

Fin

Mail: [email protected]: http://javascriptx.wordpress.com Java: http://xhrist14n.blogspot.comSite: http://www.christianportilla.comVideo:

https://www.youtube.com/watch?v=f1VUFa-lbLs