SlideShare a Scribd company logo
1 of 45
Aurelio Martín Obando Távara aot@upnorte.edu.pe proyectos iLENGUAJE DE EXPRESIONES
AGENDA- Accediendo a propiedades simples- Accediendo a propiedades embebidas- Enviando propiedades- Accediendo a colecciones- Resumen Clase 05 1
2 CONTENIDO
En facelets no soporta script JSP De este modo, necesitamos una manera Ejemplos #{employee.firstName} Invoca el método getFirstName() del bean administrado «employee» y lo muestra. <h:inputTextvalue=«#{employee.firstName}» /> Cuando el formulario es mostrado, se invoca getFirstName() Cuando el formulario es enviado, valida si el valor es OK, pasa el valor a setFirstName(…) #{employee.addresses[0].zip} Invoca el método getAddresses del bean administrado «employee» (el cual debería retornar un arreglo o una lista), luego toma el primer valor, luego invoca el método getZip() del primer valor y lo muestra. PuntosPrincipales
Notación corta para las propiedades del bean administrado Para referenciar el resultado del método getCompanyName() del bean administrado «company», se usaría #{company.companyName} Para referenciar la propiedad firstName de la propiedad president del bean administrado «company», usaría #{company.president.firstName} Acceso simple a los elementos de una colección Para referenciar un elemento de un arreglo, List o Map, se usaría #{someBean.array[indexOrKey]} Ventajas del Lenguaje de Expresiones (Muy Importante)
Un set de operadores simples muy útil Para manipular objetos dentro del Lenguaje de Expresiones, se puede usar cualquiera de muchos operadores aritméticos, relacionales, lógicos o empty-string que existen Condicional de muestra Existen dos opciones para mostrar uno de muchos resultados  #{test ? option1 : option2} <h:outputText … rendered=«#{test}» /> Ventajas del Lenguaje de Expresiones (Importante)
Variables predefinidas (objetos implícitos) Para acceder a parámetros de request, cookies, HTTP headers y otros tipos de estándar de datos request, se pueden usar uno de los muchos objetos implícitos predefinidos. Paso de argumentos La versión 2.1 de EL permite el paso arbitrario de argumentos a los métodos. Funciona únicamente en los servidores Java EE 6. «Mensajes vacíos» en vez de mensajes de error En la mayoría de los casos, valores nulos o NullPointerExceptions terminan como «mensajes vacíos» y no excepciones lanzadas. Ventajas del Lenguaje de Expresiones (No Tan Importante)
EL JSF vs. EL JSP
Accediendo a propiedades simples
Formato #{varName.propertyName} <h:outputText value=«#{varName.propertyName}» … /> Para JSF 2.0, la primera forma es usualmente la más usada, a menos que necesites otro atributo de <h:outputText (p.e. «rendered») Interpretación Primero, busca varName Buscar «varName» en todos los alcances definidos, desde el más específico hasta el más general (request, session, application, en este orden). Luego busca en las bean administrados definidos e instancia si lo encuentra. Invoca getPropertyName y muestra el resultado Esto debe ser un método de acceso normal sin paso de parámetros. Si se tratara de un boolean, el nombre del método podría ser isPropertyName. Propiedades De Bean Administrados Simples
Código Java «TestBean1.java»
Código Facelets «bean-properties.xhtml»
Resultado
Accediendo a propiedades embebidas
Formato #{var.prop1.prop2.prop3} <h:outputText value=«#{var.prop1.prop2.prop3}» … /> Interpretación Primero, busca var Igual que en el caso anterior. Busca en los alcances existentes. Si lo encuentra, lo usa; si no lo encuentra busca en los beans administrados definidos e instancia. Invoca el método getProp1 del bean administrado. Invoca el método getProp2 del resultado getProp1. Invoca el método getProp3 del resultado getProp2. Luego muestra este resultado. Propiedades De Bean Administrados Embebidas
Código Java «Name.java»
Código Java «Company.java»
Código Java «Employee.java»
Código Java «Employee1.java»
Código Facelets «nested-properties.xhtml»
Resultado
Enviando propiedades
Designar el valor a mostrar #{employee.address} o <h:outputText value=«#{employee.address}» /> Sin importar cuando se acceda, mostrará getAddress. <h:inputTextvalue=«#{employee.address}» /> Cuando el formulario se muestra, invocará getAddress y pondrá el valor en el textfield mientras sea no-vacío. Designar el valor a enviar <h:inputTextvalue=«#{employee.address}» /> Cuando el formulario es enviado, designará donde se almacenará el valor. Pasa el valor del textfiel a setAddress. Designar la llamada al método luego del envío del formulario <h:commandButtonvalue=«Submit» action=«#{employee.processEmployee}» /> Cuando el formulario es enviado, designa el manejador de la acción. Esto es el nombre exacto del método, no existe una abreviatura para ello. Tres usos del #{…}
Ejemplo <h:inputTextvalue=«#{myBean.a.b.c.d}» /> Cuando el formulario es mostrado Buscar o instanciar myBean. Invoca getA. Invoca getB sobre el resultado. Invoca getC sobre aquel resultado. Invoca getD sobre el último resultado. If el valor es no-vacío lo pone en el valor del textfield. Cuando el formulario es enviado Buscar myBean (instancia una nueva version si se está en RequestSession). Invoca getA. Invoca getB sobre el resultado. Invoca getC sobre aquel resultado. Luego pasa el valor del textfiel al método setD del último resultado. Punto: solamente el último realiza el seteo en un submission. Se asume que el valor pasa la etapa de validación. Getter vs. Setter
Código Java «Employee.java»
Código Facelets «submitting-properties.xhtml»
Resultado
Código Facelets«accepted.xhtml»
Código Facelets«rejected.xhtml»
Resultado
Accediendo a colecciones
Formas equivalentes #{name.property} Válido si «property» fuera un nombre de variable Java legal. #{name[«property»]} Razones para usar la notación de corchetes Para acceder a arreglos, listas y otras colecciones. Ver siguientes diapositivas Para calcular el nombre de la propiedad en tiempo de ejecución. #{name1[name2]} 	(sin comillas sobre name2) Para usar nombres que son ilegales como nombres de variable Java. #{foo[«bar-baz»]} #{foo[«bar.baz»]} Equivalencia del «punto» y las notaciones de arreglos
Funciona para… Arreglo. Equivalente a theArray[index] (getting y setting) Lista.  Equivalente a  theList.get(index) o theList.set(index, submittedVal) Mapa. Equivalente a theMap.get(key) ortheMap.put(key, submittedVal) Formas equivalentes {stateCapitals[«maryland»]} {stateCapitals.maryland} No se puede usar esto para las listas (los números no son nombres de variable Java legales, entonces #{listVar.2} es ilegal). Y no todas las claves de la tabla hash son nombres de variable legales.  #{attributeName[entryName]}
Código Java «Purchases.java»
Código Java «Purchases.java» (Cont.)
Código Java «Utils.java»
using-collections.xhtml Este ejemplousa indices explícitos.
using-collections.xhtml
using-collections.xhtml Debido a que se usancomillasdoblesalrededors de la clave del Mapaesque se debeusarcomillas simples aquí.
Resultado
Resultado
3 Resumen
PUNTOS PRINCIPALES ,[object Object]
#{customer.company.name}
<h:outputText value=“#{customer.company.name}” />

More Related Content

What's hot

Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
jaircazarin
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
eulo10
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
Julian Bohorquez
 

What's hot (18)

Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
 
Php basico
Php basicoPhp basico
Php basico
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Comandos java
Comandos javaComandos java
Comandos java
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Forms 10g procedimientos y cursores
Forms 10g procedimientos y cursoresForms 10g procedimientos y cursores
Forms 10g procedimientos y cursores
 
Funciones
FuncionesFunciones
Funciones
 
Clase09 java script
Clase09 java scriptClase09 java script
Clase09 java script
 
PreparedStatement
PreparedStatementPreparedStatement
PreparedStatement
 
Guia poo
Guia pooGuia poo
Guia poo
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Java script operaciones
Java script operacionesJava script operaciones
Java script operaciones
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
Java básico
Java  básicoJava  básico
Java básico
 
Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 

Similar to P1C5 Lenguaje de Expresiones

Java script
Java script Java script
Java script
Pidusa
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
Videoconferencias UTPL
 
Programación Web - Java Script.pptx
Programación Web - Java Script.pptxProgramación Web - Java Script.pptx
Programación Web - Java Script.pptx
Carlos Molina
 

Similar to P1C5 Lenguaje de Expresiones (20)

P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
preparedStatement
preparedStatementpreparedStatement
preparedStatement
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 
Java script
Java script Java script
Java script
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
P1C3 Anotaciones
P1C3 AnotacionesP1C3 Anotaciones
P1C3 Anotaciones
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
P2C5 Introducción a JEE5 - II
P2C5 Introducción a JEE5 - IIP2C5 Introducción a JEE5 - II
P2C5 Introducción a JEE5 - II
 
minas
minas minas
minas
 
Php
PhpPhp
Php
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Programación Web - Java Script.pptx
Programación Web - Java Script.pptxProgramación Web - Java Script.pptx
Programación Web - Java Script.pptx
 
JSP
JSPJSP
JSP
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 

More from Aurelio Martín Obando Távara

More from Aurelio Martín Obando Távara (11)

Configuracion del Entorno
Configuracion del EntornoConfiguracion del Entorno
Configuracion del Entorno
 
Descripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunesDescripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunes
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
JEE y Tomcat
 
P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1
 
P1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalleP1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalle
 
Etiquetas JavaServer Faces
Etiquetas JavaServer FacesEtiquetas JavaServer Faces
Etiquetas JavaServer Faces
 
Datatable Y Column
Datatable Y ColumnDatatable Y Column
Datatable Y Column
 
P1C2 Navegación y Parámetros
P1C2 Navegación y ParámetrosP1C2 Navegación y Parámetros
P1C2 Navegación y Parámetros
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
 
P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0
 

Recently uploaded

PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Recently uploaded (20)

PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 

P1C5 Lenguaje de Expresiones

  • 1. Aurelio Martín Obando Távara aot@upnorte.edu.pe proyectos iLENGUAJE DE EXPRESIONES
  • 2. AGENDA- Accediendo a propiedades simples- Accediendo a propiedades embebidas- Enviando propiedades- Accediendo a colecciones- Resumen Clase 05 1
  • 4. En facelets no soporta script JSP De este modo, necesitamos una manera Ejemplos #{employee.firstName} Invoca el método getFirstName() del bean administrado «employee» y lo muestra. <h:inputTextvalue=«#{employee.firstName}» /> Cuando el formulario es mostrado, se invoca getFirstName() Cuando el formulario es enviado, valida si el valor es OK, pasa el valor a setFirstName(…) #{employee.addresses[0].zip} Invoca el método getAddresses del bean administrado «employee» (el cual debería retornar un arreglo o una lista), luego toma el primer valor, luego invoca el método getZip() del primer valor y lo muestra. PuntosPrincipales
  • 5. Notación corta para las propiedades del bean administrado Para referenciar el resultado del método getCompanyName() del bean administrado «company», se usaría #{company.companyName} Para referenciar la propiedad firstName de la propiedad president del bean administrado «company», usaría #{company.president.firstName} Acceso simple a los elementos de una colección Para referenciar un elemento de un arreglo, List o Map, se usaría #{someBean.array[indexOrKey]} Ventajas del Lenguaje de Expresiones (Muy Importante)
  • 6. Un set de operadores simples muy útil Para manipular objetos dentro del Lenguaje de Expresiones, se puede usar cualquiera de muchos operadores aritméticos, relacionales, lógicos o empty-string que existen Condicional de muestra Existen dos opciones para mostrar uno de muchos resultados #{test ? option1 : option2} <h:outputText … rendered=«#{test}» /> Ventajas del Lenguaje de Expresiones (Importante)
  • 7. Variables predefinidas (objetos implícitos) Para acceder a parámetros de request, cookies, HTTP headers y otros tipos de estándar de datos request, se pueden usar uno de los muchos objetos implícitos predefinidos. Paso de argumentos La versión 2.1 de EL permite el paso arbitrario de argumentos a los métodos. Funciona únicamente en los servidores Java EE 6. «Mensajes vacíos» en vez de mensajes de error En la mayoría de los casos, valores nulos o NullPointerExceptions terminan como «mensajes vacíos» y no excepciones lanzadas. Ventajas del Lenguaje de Expresiones (No Tan Importante)
  • 8. EL JSF vs. EL JSP
  • 10. Formato #{varName.propertyName} <h:outputText value=«#{varName.propertyName}» … /> Para JSF 2.0, la primera forma es usualmente la más usada, a menos que necesites otro atributo de <h:outputText (p.e. «rendered») Interpretación Primero, busca varName Buscar «varName» en todos los alcances definidos, desde el más específico hasta el más general (request, session, application, en este orden). Luego busca en las bean administrados definidos e instancia si lo encuentra. Invoca getPropertyName y muestra el resultado Esto debe ser un método de acceso normal sin paso de parámetros. Si se tratara de un boolean, el nombre del método podría ser isPropertyName. Propiedades De Bean Administrados Simples
  • 15. Formato #{var.prop1.prop2.prop3} <h:outputText value=«#{var.prop1.prop2.prop3}» … /> Interpretación Primero, busca var Igual que en el caso anterior. Busca en los alcances existentes. Si lo encuentra, lo usa; si no lo encuentra busca en los beans administrados definidos e instancia. Invoca el método getProp1 del bean administrado. Invoca el método getProp2 del resultado getProp1. Invoca el método getProp3 del resultado getProp2. Luego muestra este resultado. Propiedades De Bean Administrados Embebidas
  • 23. Designar el valor a mostrar #{employee.address} o <h:outputText value=«#{employee.address}» /> Sin importar cuando se acceda, mostrará getAddress. <h:inputTextvalue=«#{employee.address}» /> Cuando el formulario se muestra, invocará getAddress y pondrá el valor en el textfield mientras sea no-vacío. Designar el valor a enviar <h:inputTextvalue=«#{employee.address}» /> Cuando el formulario es enviado, designará donde se almacenará el valor. Pasa el valor del textfiel a setAddress. Designar la llamada al método luego del envío del formulario <h:commandButtonvalue=«Submit» action=«#{employee.processEmployee}» /> Cuando el formulario es enviado, designa el manejador de la acción. Esto es el nombre exacto del método, no existe una abreviatura para ello. Tres usos del #{…}
  • 24. Ejemplo <h:inputTextvalue=«#{myBean.a.b.c.d}» /> Cuando el formulario es mostrado Buscar o instanciar myBean. Invoca getA. Invoca getB sobre el resultado. Invoca getC sobre aquel resultado. Invoca getD sobre el último resultado. If el valor es no-vacío lo pone en el valor del textfield. Cuando el formulario es enviado Buscar myBean (instancia una nueva version si se está en RequestSession). Invoca getA. Invoca getB sobre el resultado. Invoca getC sobre aquel resultado. Luego pasa el valor del textfiel al método setD del último resultado. Punto: solamente el último realiza el seteo en un submission. Se asume que el valor pasa la etapa de validación. Getter vs. Setter
  • 32. Formas equivalentes #{name.property} Válido si «property» fuera un nombre de variable Java legal. #{name[«property»]} Razones para usar la notación de corchetes Para acceder a arreglos, listas y otras colecciones. Ver siguientes diapositivas Para calcular el nombre de la propiedad en tiempo de ejecución. #{name1[name2]} (sin comillas sobre name2) Para usar nombres que son ilegales como nombres de variable Java. #{foo[«bar-baz»]} #{foo[«bar.baz»]} Equivalencia del «punto» y las notaciones de arreglos
  • 33. Funciona para… Arreglo. Equivalente a theArray[index] (getting y setting) Lista. Equivalente a theList.get(index) o theList.set(index, submittedVal) Mapa. Equivalente a theMap.get(key) ortheMap.put(key, submittedVal) Formas equivalentes {stateCapitals[«maryland»]} {stateCapitals.maryland} No se puede usar esto para las listas (los números no son nombres de variable Java legales, entonces #{listVar.2} es ilegal). Y no todas las claves de la tabla hash son nombres de variable legales. #{attributeName[entryName]}
  • 39. using-collections.xhtml Debido a que se usancomillasdoblesalrededors de la clave del Mapaesque se debeusarcomillas simples aquí.
  • 43.
  • 49. Cuando el formularioesenviado, pasa el valor a setFirstName.
  • 52.
  • 53. Encuentra esta presentación en el AULA VIRTUAL O tambiénpuedesencontrarla en . Saludos!