La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

JSF – Beans administrados y navegación

Presentaciones similares


Presentación del tema: "JSF – Beans administrados y navegación"— Transcripción de la presentación:

1 JSF – Beans administrados y navegación
Optativa III

2 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>

3 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>

4 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>

5 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>

6 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>

7 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}" />

8 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>

9 ¿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

10 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".

11 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";     } }

12 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>

13 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>

14 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>

15 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>

16 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.

17 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>

18 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".

19 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>


Descargar ppt "JSF – Beans administrados y navegación"

Presentaciones similares


Anuncios Google