SlideShare una empresa de Scribd logo
Play Framework – Generación
Vistas con Twirl
Christian Portilla Pauca
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
Motor de plantillas
 El motor de plantillas esta basado en Scala.
 Twirl, un poderoso motor de plantillas basado en Scala
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
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
Sintaxis: el caracter magico ‘@’
 La plantilla de scala usa @ como un simple caracter especial
 Hello @customer.getName()!
 Hello @(customer.getFirstName() + customer.getLastName())!
Parametros de plantilla
 Una plantilla es como una funcion
 @(title: String = "Home")
 @(title:String)(body: Html)
Iteracion
 se puede usar la palabra "for"
 <ul>
@for(p <- products) {
<li>@p.getName() ($@p.getPrice())</li>
}
</ul>
Bloque If
 Los bloques if no son nada especial
 @if(items.isEmpty()) {
<h1>Nothing to display</h1>
} else {
<h1>@items.size() items!</h1>
}
Declarando bloques reusables
 Se puede crear bloques de codigo reusable:
@display(product: models.Product) = {
@product.getName() ($@product.getPrice())
}
<ul>
@for(product <- products) {
@display(product)
}
</ul>
Importar expresiones
 se puede importar cualquier cosa que se desee
 @(customer: models.Customer, orders: List[models.Order])
Comentarios
 se puede escribir un bloque de comentario en las plantillas usando @* *@:
@*********************
* This is a comment *
*********************@
Escape de caracteres
 Por defecto, los contenidos dinamicos con escapados en funcion al tipo de
plantilla (HTML o XML)
 <p>
@Html(article.content)
</p>
Casos de uso de plantillas
 Las plantillas, son simples funciones, que pueden estar compuestas en muchas
formas que se desee.
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>
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>
}
}
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>
}
Fin
 Mail: xhrist14n@gmail.com
 Blog: http://javascriptx.wordpress.com
 Java: http://xhrist14n.blogspot.com
 Site: http://www.christianportilla.com
 Video:
https://www.youtube.com/watch?v=f1VUF
a-lbLs

Más contenido relacionado

Similar a 05 . generacion de vista con plantillas twirl en play framework

XSLT y XPATH
XSLT y XPATHXSLT y XPATH
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
Julián Castiblanco
 
XSLT
XSLTXSLT
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
ANGELRAULABILIOCABRE
 
Introducción a XHTML
Introducción a XHTMLIntroducción a XHTML
Introducción a XHTML
Arkaitz Garro
 
San Luis Oct 2008
San Luis Oct 2008San Luis Oct 2008
San Luis Oct 2008guest02b440
 
Bloques
BloquesBloques
Informática etiquetas html
Informática etiquetas htmlInformática etiquetas html
Informática etiquetas htmlmaryesther20_95
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
Julián Castiblanco
 
Presentacion Hanuman
Presentacion HanumanPresentacion Hanuman
Presentacion Hanumanfelixgborrego
 

Similar a 05 . generacion de vista con plantillas twirl en play framework (20)

XSLT y XPATH
XSLT y XPATHXSLT y XPATH
XSLT y XPATH
 
U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
XSLT
XSLTXSLT
XSLT
 
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
 
CSS
CSSCSS
CSS
 
Introducción a XHTML
Introducción a XHTMLIntroducción a XHTML
Introducción a XHTML
 
San Luis Oct 2008
San Luis Oct 2008San Luis Oct 2008
San Luis Oct 2008
 
San Luis Oct 2008
San Luis Oct 2008San Luis Oct 2008
San Luis Oct 2008
 
Clase1
Clase1Clase1
Clase1
 
Doctypehtml
DoctypehtmlDoctypehtml
Doctypehtml
 
Bloques
BloquesBloques
Bloques
 
Informática etiquetas html
Informática etiquetas htmlInformática etiquetas html
Informática etiquetas html
 
etiquetas html
 etiquetas html etiquetas html
etiquetas html
 
Xml presentacin
Xml presentacinXml presentacin
Xml presentacin
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Presentacion Hanuman
Presentacion HanumanPresentacion Hanuman
Presentacion Hanuman
 
Tutor javawebparte2
Tutor javawebparte2Tutor javawebparte2
Tutor javawebparte2
 

Más de christian enrique portilla pauca

14 desarrollo de aplicaciones web con angular js animaciones
14 desarrollo de aplicaciones web con angular js   animaciones14 desarrollo de aplicaciones web con angular js   animaciones
14 desarrollo de aplicaciones web con angular js animaciones
christian enrique portilla pauca
 
12 . desarrollo de aplicaciones web con angular js y utilerias
12 .  desarrollo de aplicaciones web con angular js y utilerias12 .  desarrollo de aplicaciones web con angular js y utilerias
12 . desarrollo de aplicaciones web con angular js y utilerias
christian enrique portilla pauca
 
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
11 . desarrollo de aplicaciones web con angular js y validacion de formularios11 . desarrollo de aplicaciones web con angular js y validacion de formularios
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
christian enrique portilla pauca
 
10 . desarrollo de aplicaciones web con angular js y formularios
10 .  desarrollo de aplicaciones web con angular js y formularios10 .  desarrollo de aplicaciones web con angular js y formularios
10 . desarrollo de aplicaciones web con angular js y formularios
christian enrique portilla pauca
 
04 . utilizando la consola de play framework
04 .  utilizando la consola de play framework04 .  utilizando la consola de play framework
04 . utilizando la consola de play framework
christian enrique portilla pauca
 
02 . configurando nuestro entorno de trabajo
02 .  configurando nuestro entorno de trabajo02 .  configurando nuestro entorno de trabajo
02 . configurando nuestro entorno de trabajo
christian enrique portilla pauca
 
01 . play framework - instalacion
01 .  play framework - instalacion01 .  play framework - instalacion
01 . play framework - instalacion
christian enrique portilla pauca
 
08 desarrollo de aplicaciones web con angular js dom
08 desarrollo de aplicaciones web con angular js   dom08 desarrollo de aplicaciones web con angular js   dom
08 desarrollo de aplicaciones web con angular js dom
christian enrique portilla pauca
 
Y01 tutorial de yeoman inicio e instalacion
Y01 tutorial de yeoman inicio e instalacionY01 tutorial de yeoman inicio e instalacion
Y01 tutorial de yeoman inicio e instalacion
christian enrique portilla pauca
 
B01 bower instalacion y primeros pasos
B01 bower instalacion y primeros pasosB01 bower instalacion y primeros pasos
B01 bower instalacion y primeros pasos
christian enrique portilla pauca
 
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
christian enrique portilla pauca
 
Terminos iso 9000
Terminos iso 9000Terminos iso 9000
diferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext jsdiferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext js
christian enrique portilla pauca
 
Sencha ExtJS introduccion
Sencha ExtJS introduccion Sencha ExtJS introduccion
Sencha ExtJS introduccion
christian enrique portilla pauca
 

Más de christian enrique portilla pauca (14)

14 desarrollo de aplicaciones web con angular js animaciones
14 desarrollo de aplicaciones web con angular js   animaciones14 desarrollo de aplicaciones web con angular js   animaciones
14 desarrollo de aplicaciones web con angular js animaciones
 
12 . desarrollo de aplicaciones web con angular js y utilerias
12 .  desarrollo de aplicaciones web con angular js y utilerias12 .  desarrollo de aplicaciones web con angular js y utilerias
12 . desarrollo de aplicaciones web con angular js y utilerias
 
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
11 . desarrollo de aplicaciones web con angular js y validacion de formularios11 . desarrollo de aplicaciones web con angular js y validacion de formularios
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
 
10 . desarrollo de aplicaciones web con angular js y formularios
10 .  desarrollo de aplicaciones web con angular js y formularios10 .  desarrollo de aplicaciones web con angular js y formularios
10 . desarrollo de aplicaciones web con angular js y formularios
 
04 . utilizando la consola de play framework
04 .  utilizando la consola de play framework04 .  utilizando la consola de play framework
04 . utilizando la consola de play framework
 
02 . configurando nuestro entorno de trabajo
02 .  configurando nuestro entorno de trabajo02 .  configurando nuestro entorno de trabajo
02 . configurando nuestro entorno de trabajo
 
01 . play framework - instalacion
01 .  play framework - instalacion01 .  play framework - instalacion
01 . play framework - instalacion
 
08 desarrollo de aplicaciones web con angular js dom
08 desarrollo de aplicaciones web con angular js   dom08 desarrollo de aplicaciones web con angular js   dom
08 desarrollo de aplicaciones web con angular js dom
 
Y01 tutorial de yeoman inicio e instalacion
Y01 tutorial de yeoman inicio e instalacionY01 tutorial de yeoman inicio e instalacion
Y01 tutorial de yeoman inicio e instalacion
 
B01 bower instalacion y primeros pasos
B01 bower instalacion y primeros pasosB01 bower instalacion y primeros pasos
B01 bower instalacion y primeros pasos
 
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
07 Desarrollo de Aplicaciones Web Con AngularJS y Tablas
 
Terminos iso 9000
Terminos iso 9000Terminos iso 9000
Terminos iso 9000
 
diferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext jsdiferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext js
 
Sencha ExtJS introduccion
Sencha ExtJS introduccion Sencha ExtJS introduccion
Sencha ExtJS introduccion
 

Último

Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024
eCommerce Institute
 
Literatura de la Independencia de Colombia.pptx
Literatura de la Independencia de Colombia.pptxLiteratura de la Independencia de Colombia.pptx
Literatura de la Independencia de Colombia.pptx
ssuseraf39e3
 
Giovanni Stella - eCommerce Day Colombia 2024
Giovanni Stella -  eCommerce Day Colombia 2024Giovanni Stella -  eCommerce Day Colombia 2024
Giovanni Stella - eCommerce Day Colombia 2024
eCommerce Institute
 
María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024
eCommerce Institute
 
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
eCommerce Institute
 
control de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptxcontrol de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptx
jesusbellido2
 
Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024
eCommerce Institute
 
Grafica Mapa Conceptual Simple Multicolor.pdf
Grafica Mapa Conceptual Simple Multicolor.pdfGrafica Mapa Conceptual Simple Multicolor.pdf
Grafica Mapa Conceptual Simple Multicolor.pdf
YudetxybethNieto
 
Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024
eCommerce Institute
 
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
eCommerce Institute
 
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
eCommerce Institute
 
Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024
eCommerce Institute
 
Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024
eCommerce Institute
 
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIARAVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
JessicaMelinaCisnero
 

Último (14)

Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024
 
Literatura de la Independencia de Colombia.pptx
Literatura de la Independencia de Colombia.pptxLiteratura de la Independencia de Colombia.pptx
Literatura de la Independencia de Colombia.pptx
 
Giovanni Stella - eCommerce Day Colombia 2024
Giovanni Stella -  eCommerce Day Colombia 2024Giovanni Stella -  eCommerce Day Colombia 2024
Giovanni Stella - eCommerce Day Colombia 2024
 
María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024
 
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
 
control de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptxcontrol de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptx
 
Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024
 
Grafica Mapa Conceptual Simple Multicolor.pdf
Grafica Mapa Conceptual Simple Multicolor.pdfGrafica Mapa Conceptual Simple Multicolor.pdf
Grafica Mapa Conceptual Simple Multicolor.pdf
 
Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024
 
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
 
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
 
Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024
 
Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024
 
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIARAVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
AVICULTURA DIAPOSITIVAS PARAPODER ESTUDIAR
 

05 . generacion de vista con plantillas twirl en play framework

  • 1. Play Framework – Generación Vistas con Twirl Christian Portilla Pauca
  • 2. 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
  • 3. Motor de plantillas  El motor de plantillas esta basado en Scala.  Twirl, un poderoso motor de plantillas basado en Scala
  • 4. 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
  • 5. 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
  • 6. Sintaxis: el caracter magico ‘@’  La plantilla de scala usa @ como un simple caracter especial  Hello @customer.getName()!  Hello @(customer.getFirstName() + customer.getLastName())!
  • 7. Parametros de plantilla  Una plantilla es como una funcion  @(title: String = "Home")  @(title:String)(body: Html)
  • 8. Iteracion  se puede usar la palabra "for"  <ul> @for(p <- products) { <li>@p.getName() ($@p.getPrice())</li> } </ul>
  • 9. Bloque If  Los bloques if no son nada especial  @if(items.isEmpty()) { <h1>Nothing to display</h1> } else { <h1>@items.size() items!</h1> }
  • 10. Declarando bloques reusables  Se puede crear bloques de codigo reusable: @display(product: models.Product) = { @product.getName() ($@product.getPrice()) } <ul> @for(product <- products) { @display(product) } </ul>
  • 11. Importar expresiones  se puede importar cualquier cosa que se desee  @(customer: models.Customer, orders: List[models.Order])
  • 12. Comentarios  se puede escribir un bloque de comentario en las plantillas usando @* *@: @********************* * This is a comment * *********************@
  • 13. Escape de caracteres  Por defecto, los contenidos dinamicos con escapados en funcion al tipo de plantilla (HTML o XML)  <p> @Html(article.content) </p>
  • 14. Casos de uso de plantillas  Las plantillas, son simples funciones, que pueden estar compuestas en muchas formas que se desee.
  • 15. 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>
  • 16. 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> } }
  • 17. 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> }
  • 18. Fin  Mail: xhrist14n@gmail.com  Blog: http://javascriptx.wordpress.com  Java: http://xhrist14n.blogspot.com  Site: http://www.christianportilla.com  Video: https://www.youtube.com/watch?v=f1VUF a-lbLs