Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Desarrollo rápido
de aplicaciones
Alta escalabilidad
Portable
Soportado
JSF Page
Request
UIComponent
Response UIComponent
UIComponent
UIComponent
UIComponent
Java Bean
(Java Class)
(c) Lucasian Labs, 2003 – 2007
Ejercicio
Objetivo :
• Desarrollar una aplicación para realizar la adicion de un
persona a un listado de contactos.
Pasos :
1. Construya un pagina prototipo para realizar el proceso de
autenticación de usuarios.
2. Declare la vista de la pagina faces.
3. Modifique los componentes HTML estándar por
componentes faces.
4. Construya un javaBean, con la información solicitada en
los formularios.
5. Asocie uno a uno los campos del javaBean al formulario.
6. Defina las acciones en el javaBean y asócielo al botón de
envió.
<form>
<table cellspacing="2" cellpadding="3" border="1" width="100%">
<tr>
<td>Usuario</td>
<td>
<input type="text“ name=“identificacion”/>
</td>
<td> </td>
</tr>
<tr>
<td>Password</td>
<td>
<input type=“password“ name=“nombre”/>
</td>
<td> </td>
</tr>
…
<tr>
<td> </td>
<td>
<input type="submit" value=“Enviar"/>
</td>
<td> </td>
</tr>
</table>
</form>
import javax.faces.context.FacesContext;
<managed-bean>
<managed-bean-name>SimpleForm</managed-bean-name>
<managed-bean-class>
com.lucasiandev.login.model.SimpleForm
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<context-param>
<param-pame> Localización del
javax.faces.application.CONFIG_FILES archivo de configuración
</param-name> de JSF.
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class> Controlador Frontal de
javax.faces.webapp.FacesServlet Java Server Faces.
</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
El árbol de
componente
Revisar que
Restaure se debe
Request guardar
Vista
Aplicar los nuevos
valores
Response
Ejecutar
Validadores
Ejecutar la acción
public SimpleForm()
{
FacesContext context= FacesContext.getCurrentInstance();
List listadoHijosVista= context.getViewRoot().getChildren();
Iterator iterador= listadoHijosVista.iterator();
while (iterador.hasNext())
{
UIComponent component= (UIComponent)iterador.next();
System.out.println(component);
}
}
Vista
(mipagina.jsp)
Formulario
(formulario)
public SimpleJSFB() {
}
}
(c) Lucasian Labs, 2003 – 2007
Trabajando con componentes Visuales
directamente (Vista)
<f:view>
<h:form id=“autenticacion”>
<table cellspacing="2" cellpadding="3" border="1" width="100%">
<tr>
<td>Identificacion</td>
<td>
<h:inputText id=“identificacion"
binding=“#{SimpleJSFB.identificacion}”/>
</td>
</tr>
<tr>
<td>Nombre</td>
<td>
<h:inputSecret id=“nombre"
binding=“#{SimpleJSFB.nombre}”/>
</td>
</tr>
<tr>
<td><h:message for=“username”/></td>
<td>
<h:commandButton value="Enviar”
action=“#{SimpleJSFB.autenticarse}”/>
</td>
<td> </td>
</tr>
</table>
</h:form>
</f:view>
(c) Lucasian Labs, 2003 – 2007
Navegación JSF
<navigation-rule>
<from-view-id>/paginaOrigen.jsp</from-view-id>
<navigation-case>
<from-outcome>exito</from-outcome>
<to-view-id>/paginaExito</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/paginaError.jsp</to-view-id>
</navigation-case>
</navigation-rule>
– inputText
<h:inputText id="address"
value="#{jsfexample.address}" />
– inputSecret
<h:inputSecret redisplay="false"
value="#{jsfexample.password}" />
– inputHidden
<h:inputHidden id="hidden" value="userPreference" />
– inputTextArea
<h:inputTextarea id="textArea" rows="4" cols="7"
value="Text goes here.."/>
Representación JSF
<h:inputText id="campoTexto" binding="#{CamposTexto.campoTexto}"/>
Representación Modelo
private HtmlInputText campoTexto;
– outputText
<h:outputLabel for="address"> <h:outputText
id="addressLabel" value="User Home Address"/>
</h:outputLabel>
– Message
Enter address:
<h:message style="color: red" for="useraddress" />
<h:inputText id="useraddress“
value="#{jsfexample.address}" required="true"/>
<h:commandButton action="save" value="Save"/>
<h:message for="cadenaTexto"
id="mensajeError"
binding="#{MensajeError.mensajeError}"/>
Representación Modelo
private HtmlOutputText cadenaTexto;
private HtmlMessage mensajeError;
private HtmlMessages mensajesError;
public constructor() {
FacesContext contexto= FacesContext.getCurrentInstance();
• Objetivos :
Completar el ejercicio adicionando validaciones básicas sobre
los campos
• Plan de Trabajo :
El Formulario debe solicitar la siguiente información, con las
siguientes validaciones :
• Identificacion : Campo numérico y requerido
• Nombre : Campo requerido.
• Apellido : Campo requerido.
• Ciudad : Campo requerido.
• Teléfono : Campo numérico.
• Correo Electrónico : Campo requerido y debe contener el
símbolo de “@”
• Consideraciones especiales :
– Cuando el valor del campo Identificación este correcto, no se debe
permitir que el usuario vuelva a cambiar su valor, a menos de que
pulse el botón de Cancelar.
TIP: Para que un campo este deshabilitado, use :
this.identificacion.setReadonly(true);
– dataTable
<h:dataTable id="books"
value="#{BookStore.items}" var="store">
<h:column>
<h:outputText value="#{store.name}"/>
</h:column>
<h:column>
<h:outputText value="#{store.subject}"/>
</h:column>
<h:column>
<h:outputText value="#{store.price}"/>
</h:column>
</h:dataTable>
<h:commandButton id="procesar"
action="#{Table.accesarTabla}"
value="Enviar"/>
</h:form>
(c) Lucasian Labs, 2003 – 2007
Componentes JSF.HTML
Representación Modelo
private HtmlDataTable table;
public Table()
{
table= new HtmlDataTable();
Vector elementsOfTables= new Vector();
Columns column1= new Columns();
column1.setNombre("Diego");
column1.setDireccion("Carrera 10 # 2-90");
column1.setTelefono("88394484");
elementsOfTables.add(column1);
table.setValue(elementsOfTables);
El resultado de la operación
public String accesarTabla()
{
Vector valuesOf= (Vector)this.table.getValue();
for (int counter=0; counter<valuesOf.size(); counter++)
{
Columns column= (Columns)valuesOf.get(counter);
System.out.println(column.getNombre() + "= " + column.getDescripcion());
}
return null;
}
– CommandButton
<h:commandButton id="submit"
value="#{msg.buttonHeader}" action="nextPage">
</h:commandButton>
– CommandLink
<h:commandLink id="link" action="goto">
<h:outputText value="#{msg.linkName}"/>
</h:commandLink>
– graphicImage
<h:graphicImage id="image" alt="jsf-sun"
url="/images/jsf-sun.gif"> </h:graphicImage>
Representación JSF
<h:commandButton id="boton" binding="#{Acciones.boton}" value="Texto Boton"/>
<h:commandLink id="vinculo"
binding="#{Acciones.vinculo}"
value="Texto Vinculo"/>
<h:graphicImage id="imagen"
binding="#{Acciones.imagen}"
url="images/code.gif" />
Representación Modelo
private HtmlCommandButton boton;
– selectOneBox
<h:selectOneBox id="pickCar"
value="#{carBean.currentCar}“ />
– selectManyCheckbox
<h:selectManyCheckbox id="cars"
value="#{carsBean.car}">
<f:selectItems value="#{carBean.carList}"/>
</h:selectManyCheckbox>
– selectOneRadio
<h:selectOneRadio value="#{carBean.currentCar}">
<f:selectItems value="#{carBean.carList}" />
</h:selectOneRadio>
Representación JSF
<h:selectBooleanCheckbox id="unChequeo" binding="#{Chequeo.unChequeo}"/>
Representación Modelo
private HtmlSelectBooleanCheckbox unChequeo;
– selectOneMenu
<h:selectOneMenu id="selectCar"
value="#{carBean.currentCar}"> <f:selectItems
value="#{carBean.carList}" /> </h:selectOneMenu>
– selectManyMenu
<h:selectManyMenu id="cars_selectManyListbox"
value="#{carBean.car}">
<f:selectItems value="#{carBean.carList}">
</h:selectManyListbox>
Representación JSF
<h:selectOneMenu id="unMenu" binding="#{Seleccion.unMenu}">
<f:selectItems value="#{Seleccion.listOfSeleccion}"/>
</h:selectOneMenu>
Representación Modelo
private HtmlSelectOneMenu unMenu;
Validación Conversión
Response Value
Java Bean Model
(HtmlInputText)
Representación JSF
<h:inputText id="valorNumerico" binding="#{Conversion.valorNumerico}">
<f:convertNumber minFractionDigits="2"/>
</h:inputText>
Representación Modelo
private HtmlInputText valorNumerico;
Long.valueOf(this.valorNumerico.getValue().toString());
System.out.println(value.longValue());
return null;
}
Representación JSF
<h:inputText id="valorFecha" binding="#{Conversion.valorFecha}">
<f:convertDateTime pattern="MM/yyyy"/>
</h:inputText>
Representación Modelo
private HtmlInputText valorFecha;
if (this.valorFecha.getValue()!=null) {
java.util.Date fecha= (java.util.Date)this.valorFecha.getValue();
System.out.println(fecha);
}
}