Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Son variables que solo se ven dentro de nuestro JSP o Servlet mientras se está
ejecutando. Una vez construída y enviada la respuesta al navegador, desaparecen. Su
única utilidad es ayudarnos a construir la página que queremos mostrar en el
navegador. Dentro del JSP serían variables normales de JSP
Request Scope
Estas variables son más útiles. Las guardamos en la petición que nuestro JSP/Servlet
van a hacer a otro JSP/Servlet de nuestra aplicación, y este segundo JSP/Servlet
puede recogerlos para hacer cosas con ellas.
Dentro de un JSP tenemos predefinido un objeto request, y en él podríamos fijar estas
variables con setParameter() o con setAttribue(). y obtener los valores con los
getParameter() o getAttribute().
Session scope
Las variables Session scope se mantienen durante lo que se conoce como una sesión.
Cuando un usuario visita nuestra aplicación por primera vez, automáticamente se crea
una sesión para ese usuario. Esta sesión suele estar abierta mientras el usuario va
navegando por las páginas de nuestra aplicación y desaparece cuando el usuario deja
de navegar por nuestra aplicación durante un tiempo predeterminado.
Dicho de otra forma, cualquier valor que guardemos en la sesión del usuario, sólo será
visible por las páginas que visite ese usuario y mientras el usuario esté activo. Son las
variables típicas donde guardar si un usuario ha entrado en sesión con un usuario y
password, su nombre, su carrito de la compra si nuestra aplicación es de comercio
electrónico, etc.
Application scope
Estas variables son válidas para la aplicación. Permanecen hasta que repleguemos
nuestra aplicación del servidor o echemos el servidor abajo. Son compartidas para
todos los usuarios que visiten nuestra página web.
Dentro de un JSP podemos fijarlas o leerlas con la variable application que viene
predefinida en cualquier JSP, usando los conocidos métodos setAttribute() y
getAttribute().
Ejemplo 1:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name=usuarioBean")
@RequestScopedpublic class UsuarioBean {
private String nombre;
private String password;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
<h:form>
<h3>Introduzca su nombre y password</h3>
<table>
<tr>
<td>Nombre:</td>
<td>
<h:inputText value="#{usuarioBean.nombre}"/>
</td>
</tr>
<tr>
<td>password:</td>
<td>
<h:inputSecret value="#{usuarioBean.password}"/>
</td>
</tr>
</table>
<p>
<h:commandButton value="Aceptar" action="hola"/>
</p>
</h:form>
Hola.xhtml (en medio del <body>
<h:form>
nombre: <h:outputText value="#{usuarioBean.nombre}"/> <br/>
password: <h:outputText value="#{usuarioBean.password}"/>
</h:form>
*****************************************************************************
Ejemplo 2:
package jsf;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
@ManagedBean(name="formBean1")
@RequestScoped
public class FormBean {
Sin Ajax:
<h:form>
Opciones: <h:selectOneMenu
value="#{formBean1.opcionActual}">
<f:selectItems value="#{formBean1.opciones}"/>
</h:selectOneMenu>
<br/>
<h:commandButton value="Mostrar opcion"/><br/>
opcionActual:<h:outputText id="opcion"
value="#{formBean1.opcionActual}"/>
</h:form>
Con Ajax:
<h:form>
Opciones: <h:selectOneMenu
value="#{formBean1.opcionActual}">
<f:selectItems value="#{formBean1.opciones}"/>
<f:ajax render="opcion"/>
</h:selectOneMenu>
<br/>
<h:commandButton value="Mostrar opcion"/><br/>
opcionActual:<h:outputText id="opcion"
value="#{formBean1.opcionActual}"/>
</h:form>
Usando Template
Ejemplo 3:
Paso 1:
Para la clase EstudianteBean ( se hace generado con JSF Managed Bean, tipo Request)
package bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class EstudianteBean {
public EstudianteBean() {
}
}
de aqui generar set y get
Paso 2:
Paso 3:
Dentro de EstudianteCliente.xhtml
En el Top, insertar:
En el Content insertar.
<h:panelGrid columns="2">
</h:panelGrid>
En el Botton insertar:
<h:form>
<h:commandLink action="index">pantalla de inicio</h:commandLink>
</h:form>
Paso 4:
Modificar el index.xhtml
Dentro de Body
<h2>Formulario de Estudiante</h2>
<h:form>
<h:panelGrid columns="3">
</h:panelGrid>
</h:form>
Salida: