You are on page 1of 5

Asignatura: Programacin 4 CEIS, CUJAE

Clase Prctica #6 Componentes administrados. Configuracin de aplicaciones web


basadas en JavaServer Faces.

Objetivos:

Implementar el fichero de configuracin de una aplicacin JSF.


Ejercitar desarrollo de aplicaciones JSF

Bibliografa:

1. Geary, David; Horstmann, Cay. Core JavaServerTM Faces, Second Edition,


Prentice Hall, 2007. Chapter 2.

Desarrollo

La aplicacin de la Fig. 1 presenta un ejemplo muy sencillo de la autenticacin de usuarios


en un sistema utilizando JSF como framework de desarrollo. En el mismo se introducen dos
campos: usuario y contrasea y se hace clic en el botn Aceptar para llevar a cabo el
proceso de autenticacin. Si el nombre de usuario y la contrasea son vlidos se re
direcciona hacia otra pgina donde se informa que el usuario myeclipse con contrasea
myeclipse ha sido autenticado satisfactoriamente como se muestra en la Fig. 2. En caso
contrario se le informa al usuario que sus credenciales son invlidas como se muestra en
Fig. 3.

Figura 1. Aplicacin jsflogindemo, pgina userLogin.jsp

Ejercicios

Teniendo en cuenta el enunciado anterior:

1. Represente el cdigo del Managed Bean UserBean correspondiente a la pgina


userLogin.jsp mostrada en la Fig. 1.

Solucin
Asignatura: Programacin 4 CEIS, CUJAE

package com.jsfdemo.bean;

public class UserBean {


private String userName;
private java.lang.String password;
private java.lang.String error;

public UserBean() {
super();
}

public UserBean(String userName, String password, String error) {


super();
this.userName = userName;
this.password = password;
this.error = error;
}

public String getUserName() {


return userName;
}

public void setUserName(String userName) {


this.userName = userName;
}

public java.lang.String getPassword() {


return password;
}

public void setPassword(java.lang.String password) {


this.password = password;
}

public java.lang.String getError() {


return error;
}

public void setError(java.lang.String error) {


this.error = error;
}

2. Realice las configuraciones necesarias en el fichero faces-config.xml conociendo que el


bean UserBean su tiempo de vida es durante toda la sesin del usuario y adems existen
dos reglas de navegacin, una llamada success que indica que el usuario se autentic y
otra llamada failure indicando que la autenticacin fall y permanece la misma pgina.

Solucin
Asignatura: Programacin 4 CEIS, CUJAE

<?xml version='1.0' encoding='UTF-8'?>


<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">

<managed-bean>
<managed-bean-name>UserBean</managed-bean-name>
<managed-bean-class>com.jsfdemo.bean.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

<navigation-rule>
<from-view-id>/userLogin.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/userLoginSuccess.jsp </to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/userLogin.jsp </to-view-id>
</navigation-case>
</navigation-rule>

<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
<resource-bundle>
<base-name>com.jsfdemo.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
</faces-config>

3. Realice una funcin llamada loginUser que verifique si el usuario y la contrasea son
myeclipse. Si es positivo se debe redireccionar a la pgina userLoginSucces.jsp, en caso
contrario se queda en la misma pgina y muestra un mensaje de error como se muestra en
la Fig. 3.

Figura 2. Pgina userLogin.jsp cuando la autenticacin falla.


Asignatura: Programacin 4 CEIS, CUJAE

Solucin

public String loginUser() {


if("myeclipse".equals(getUserName()) &&
"myeclipse".equals(getPassword())) {
error = "";
return "success";
}
error = "El usuario/contrasea no es correcto.";
return "failure";
}

4. Represente el cdigo correspondiente a las pginas userLogin.jsp y


userLoginSuccess.jsp, utilizando para ello las etiquetas que brinda JSF. La pgina
userLoginSuccess.jsp presenta un mensaje indicando al usuario que se ha autenticado
correctamente, como se muestra en la Fig. 2.

Figura 3. Pgina userLoginSuccess.jsp

Solucin

userLogin.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>


<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
<head>
<title>My JSF 'userLogin.jsp' starting page</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
<f:view>
<f:loadBundle basename="com.jsfdemo.messages" var="msgs"/>
<h:form id="loginForm">
<p style="font-size: 14px; font-weight: bold; font-
family: Arial;">Ejemplo bsico que permite la autenticacin
de usuarios en un sistema</p>

<h:outputLabel for="userName">
Asignatura: Programacin 4 CEIS, CUJAE

<h:outputText
value="#{msgs.user_name_label}"></h:outputText>
</h:outputLabel>
<h:inputText value="#{UserBean.userName}"
id="userName"></h:inputText>

<br style="margin: 10px;"/>

<h:outputLabel for="password">
<h:outputText
value="#{msgs.user_password_label}"></h:outputText>
</h:outputLabel>
<h:inputSecret value="#{UserBean.password}"
id="password"></h:inputSecret>

<br style="margin: 10px;"/>

<h:commandButton type="submit"
action="#{UserBean.loginUser}"
value="#{msgs.login_button_label}"></h:commandButton>

<p style="color: red;"><h:outputText


value="#{UserBean.error}"></h:outputText> </p>
</h:form>
</f:view>
</body>
</html>

Motivacin para la prxima clase

En la prxima clase se continuar el estudio de JSF haciendo nfasis en las reglas de


navegacin y los tags html de la tecnologa.

Estudio Independiente

Estudiar ejemplo del captulo 2 del libro Core Java Server Faces, Second Edition.

You might also like