JSF – Beans administrados y navegación

Slides:



Advertisements
Presentaciones similares
I. Sesión 2 Noviembre 2010 Claudio Chaucca Umana
Advertisements

© Lic. Fernando Campos Camacho
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Curso de Java y Aplicaciones Web
RESUMENCURSO STRUTS 2 Resumen de lo visto en este tercer módulo: VISTA del framework Struts 2 Debes tener los conceptos muy claros sobre: Results UI Tags.
Programación orientada a objetos
Java Server Faces.
Contextos e Inyección Dependiente (CDI)
JSF (JAVA SERVER FACES)
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Aclaraciones al modelo MVC del Framework de Justicia
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Softlogia S.R.L. Formación de Recursos Humanos Spring Instructor: Martin R. Baspineiro.
Crear Aplicación Cliente para Conectarse a una Base de Datos.
JSF Simplificando nuestro trabajo. JSF – Java Server Faces Celula Creative SUN 2 La principal intención es liberar al programador de aspectos Web Pretende.
Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro.
1 Tema 2.5 Cookies. Inicio 2 1.CookiesCookies La principal utilidad de las cookies (galletas) es la de solventar el problema de la falta de estado en.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Trabajar con módulosTrabajar con variables públicasCrear procedimientos Pasar argumentos por valor y por referencia Referencia rápida.
Java Server Faces Desarrollo de Aplicaciones Empresariales con Java Instructor: Geovanny Cudco
Procesamiento de Formularios con Servlets de Java Aplicaciones Web con JSP y Servlets de Java.
Microsoft Office 2007 Introducción a Access. Una base de datos es una colección de información relacionada entre si y almacenada en una o más computadoras.
Administración de Sistemas Gestores de Bases de Datos.
PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y constructores.
HTM L (Hyper Text Markup Language). ¿Qué es HTML? Es el lenguaje que permite escribir texto de forma estructurada, y que está compuesto por etiquetas,
NAVEGADORES WEB.
Francisco Moreno Bases de Datos II Universidad Nacional
BASES DE DATOS Y METADATOS
Convenciones de nomenclatura y diseño
Curso de MICROSOFT ACCESS
PROGRAMACIÓN ORIENTADA A OBJETOS
Helpers en ASP.NET MVC.
Programación Avanzada
Programación Orientada a Objetos
Métodos y parámetros.
Polimorfismo y Métodos Virtuales
Métodos en Java.
Programación orientada a objetos
Federico Rodriguez Bravo Ing. Jaime A. Pavlich-Mariscal Ph.D
Guía teórica de manejo de estructuras de datos
Introducción a programación web Martin Esses
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Actividad 7 Diagrama de estado
II QUIMESTRE PARCIAL I VISUAL.
Desarrollo Actividad Número 3
Patrones de Diseño Agustín J. González ElO329.
Polimorfismo y Métodos Virtuales
Introducción a Visual Studio .NET
Aplicaciones Web de Servidor
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO. (GUI GRAPHICAL.
Herencia en C#.
Tema: Normas ISO en Investigación de Mercados
Interfaces Gráficas de Usuario
Plantillas (Templates)‏
Diseño WEB - Escritorio
HTML. El lenguaje de marcas de hipertexto
Tutorial Holdings Management (Administración de Recursos)
Programación orientada a objetos en Visual Basic .NET
To talk about school rules and use ‘se puede’ and ‘se debe’
Solicitud de cotización y Configuraciones
JDBC: comunicación Java-Base de Datos
Templates (en español: Pantillas, modelos, patrones)‏
Polimorfismo en C++ y Métodos Virtuales
Templates (en español: Pantillas, modelos, patrones)‏
User Name: SuperSayaHentai New Password: crUj65KKUAXC.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Guía Básica de HTML.
Transcripción de la presentación:

JSF – Beans administrados y navegación Optativa III

Navegación en JSF JSF establece normas de navegación en los archivos de configuración de JSF junto con otras definiciones. Por lo general, este archivo se denomina faces- config.xml. Puede asignar otro nombre e incluso usar más de un archivo para almacenar los datos de configuración de JSF. En web.xml. <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value> /WEB-INF/faces-config.xml,/WEB-INF/faces-beans.xml </param-value> </context-param>

Navegación en JSF El siguiente ejemplo especifica que la vista /pages/inputname.jsp tiene dos salidas, SayHello y sayGoodbye, asociados a determinadas páginas. <navigation-rule> <from-view-id>/pages/inputname.jsp</from-view-id> <navigation-case> <from-outcome>sayHello</from-outcome> <to-view-id>/pages/greeting.jsp</to-view-id> </navigation-case> <from-outcome>sayGoodbye</from-outcome> <to-view-id>/pages/goodbye.jsp</to-view-id> </navigation-rule>

Navegación en JSF En este otro ejemplo todos los resultados excepto sayHello, se remitirá a /pages/goodbye.jsp <navigation-rule> <from-view-id>/pages/inputname.jsp</from-view-id> <navigation-case> <from-outcome>sayHello</from-outcome> <to-view-id>/pages/greeting.jsp</to-view-id> </navigation-case> <to-view-id>/pages/goodbye.jsp</to-view-id> </navigation-rule>

Navegación en JSF Esta es una regla de navegación para cualquier página dentro del directorio /pages/. <navigation-rule> <from-view-id>/pages/*</from-view-id> <navigation-case> <from-outcome>menu</from-outcome> <to-view-id>/menu/main_main.jsp</to-view-id> </navigation-case> <from-outcome>info</from-outcome> <to-view-id>/menu/info.jsp</to-view-id> </navigation-rule>

Navegación JSF Si se requiere que de cualquier página exista una transición a otra específica, vea este ejemplo: <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>globalhelp</from-outcome> <to-view-id>/menu/generalHelp.jsp</to-view-id> </navigation-case> </navigation-rule>

Navegación JSF en las acciones Se puede definir la navegación desde el código de la vista en JSF, de las siguientes 2 formas: Esto significa que el método de helloAction será invocado y el resultado se utiliza como un outcome. helloAction debe ser un método público que devuelve String. <h:commandButton id="submit" action="sayHello" value="Submit" /> <h:commandButton id="submit" value="Submit" action="#{GetNameBean.helloAction}" />

Navegación JSF en las acciones Para representar lo anterior también se puede usar lo siguiente <navigation-rule> <from-view-id>/pages/inputname.jsp</from-view-id> <navigation-case> <from-outcome>sayHello</from-outcome> <to-view-id>/pages/anotherhello.jsp</to-view-id> </navigation-case> <from-action>#{GetNameBean.helloAction}</from-action> <to-view-id>/pages/hello.jsp</to-view-id> </navigation-rule>

¿Qué son los beans administrados? En una aplicación JSF los beans administrados se utilizan asociarlos con los componentes de interfaz de usuario. Son solo beans con propiedades y métodos. Las propiedades están asociadas a valores de componentes o instancias de componentes. Todas las propiedades de un bean deben tener sus métodos set y get. También se pueden definir métodos para el control de eventos, navegación, validación, etc. que se asocian con el componente

Asociación Bean - Componente Para enlazar el valor de un componente con la propiedad de un bean o para referirse a un método de del bean se usa Expression Language (EL). Ejemplo: #{BeanName.propertyName} se puede usar para enlazar el valor del componente a la propiedad "propertyName" del bean "beanName". #{BeanName.methodName} puede ser usado para referirse método "methodName()" del bean "beanName".

Ejemplo - Bean Tenemos este bean con sus respectivos gets y sets y un método extra llamado selectPage public class Bean{   private String thought_of_the_day;   private String userName;   private String phoneNo;   private String company; … public String selectPage(){    if(company.equals(“ITSON"))    return “itson";     else    return "other";     } }

Ejemplo - faces-config El archivo faces-config.xml se configura de la siguiente manera. <managed-bean>    <managed-bean-name>Bean</managed-bean-name>    <managed-bean-class>itson.Bean</managed-bean-class>    <managed-bean-scope>session</managed-bean-scope>    <managed-property>    <property-name>thought_of_the_day</property-name>    <value> It's good to be important but it's more important  to be good.    </value>    </managed-property> </managed-bean>

Ejemplo - faces-config Se añaden las siguientes líneas para la navegación. <navigation-rule>   <from-view-id>/pages/user.jsp</from-view-id>   <navigation-case>   <from-outcome>itson</from-outcome>   <to-view-id>/pages/welcome.jsp</to-view-id>   </navigation-case>   <navigation-case>   <from-outcome>other</from-outcome>   <to-view-id>/pages/otherpage.jsp</to-view-id>   </navigation-case> </navigation-rule>

Ejemplo - faces-config <navigation-rule>   <from-view-id>/pages/welcome.jsp</from-view-id>   <navigation-case>   <from-outcome>Edit</from-outcome>   <to-view-id>/pages/user.jsp</to-view-id>   </navigation-case> </navigation-rule> <navigation-rule>   <from-view-id>/pages/otherpage.jsp</from-view-id>   <navigation-case>   <from-outcome>back</from-outcome>   <to-view-id>/pages/user.jsp</to-view-id>   </navigation-case> </navigation-rule>

Ejemplo - jsp user.jsp <f:view>   <h:form>   <h:outputText value="User Name." /><br>   <h:inputText value="#{Bean.userName}"/><br><br>   <h:outputText value="Phone No." /><br>   <h:inputText value="#{Bean.phoneNo}" /><br><br> <h:outputText value="Company Name" /><br>    <h:inputText value="#{Bean.company}" /><br><br>   <h:outputText value="Thought of the day" /><br>   <h:inputText value="#{Bean.thought_of_the_day}" />    <h:commandButton value="Submit" action="#{Bean.selectPage}" />   </h:form> </f:view>

Ejemplo - jsp En esta página se asocian los valores de los UIcomponents a las propiedades del bean. Cuando el usuario llama a esta página, la última entrada de componente se mostrará con el valor especificado en el archivo "faces-config.xml". Cuando el usuario llena valores de estos componentes, estos valores se almacenan en las propiedades del bean.

Ejemplo - jsp Welcome.jsp <f:view> <h:form>    <h:outputText value="You have entered :" /> <hr> User Name: <h:outputText value="#{Bean.userName}" /><br> Password: <h:outputText value="#{Bean.phoneNo}" /><br> Phone No: <h:outputText value="#{Bean.company}" /><br>    <h:commandButton value="Edit Details" action="Edit"/> <hr>    <h:outputText value="#{Bean.thought_of_the_day}" /></b>   </h:form> </f:view>

Ejemplo - jsp En "welcome.jsp" se utilizan los valores del bean en las propiedades considera los valores llenados en la página anterior. El botón está asociado con el método SelectPage() de la clase Bean. Este valor se establece en el atributo action de la etiqueta commandButton. Este botón funciona de acuerdo con el valor devuelto y las reglas de navegación especificados en el archivo "faces- config.xml".

Ejemplo - jsp Otherpage.jsp <f:view> <h:form>   <h:outputText value="Sorry........This is for ITSON     employees only. " /><br>    <h:commandButton value="Go Back" action="back"/>   </h:form> </f:view>