JSF2.3 inputSecret – Ejemplos
La etiqueta h: inputSecret es una de las etiquetas JSF más populares. Este representa un elemento de entrada HTML (componente h: inputText) del tipo «password» (con atributo type=’password’). Cuando se escribe en este tipo de componente el texto permanece oculto. Dependiendo del browser, este puede ser representado por asteriscos.
JSF:
<h:inputSecret value = "contrasena" />
HTML:
<input type="password" name="j_idt5:j_idt6" value="" />
Ejemplo 1:
Escribir un formulario que pida una contraseña y otro formulario que exiba la contraseña digitada.
Desarrollando el ejemplo:
CDI Managed Bean EjemploInputSecret.java
package com.josehuaman.ejemplos; import java.io.Serializable; import javax.enterprise.context.RequestScoped; import javax.inject.Named; @Named @RequestScoped public class EjemploInputSecret implements Serializable { private static final long serialVersionUID = 1L; private String contrasena ; public String getContrasena() { return contrasena; } public void setContrasena(String contrasena) { this.contrasena = contrasena; } }
Página JSF con el formulário: ejemploInputSecret.xhtml
El atributo ‘action’ de la etiqueta ‘commandButton’ indica la pagina web (respuesta.xhtml) donde irá el formulario.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Ejemplo JSF2.3 InputSecret</title> </h:head> <h:body> <h2>Ejemplo JSF2.3 InputSecret</h2> <h:form> <h:outputLabel for="contrasena" value="Constraseña:"/> <h:inputSecret id="contrasena" value="#{ejemploInputSecret.contrasena}" /> <h:commandButton value="Enviar" action="respuesta" /> </h:form> </h:body> </html>
Página JSF con la respuesta. respuesta.xhtml
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Ejemplo JSF2.3 InputSecret - Respuesta</title> </h:head> <h:body> <h2>Ejemplo JSF2.3 InputSecret</h2> <h:form> <h:outputText value="Contraseña: "/> <h:outputText value="#{ejemploInputSecret.contrasena}"/> </h:form> </h:body> </html>
Resultado: http://localhost:8080/ejemplo_web_jsf23/ejemploInputSecret.xhtml
En la izquierda tenemos el formulario inicial, en la derecha el formulario después de clicar en Enviar.
Ejemplo 2:
Escribir un formulario que pida un nombre y una contraseña. Si el nombre es igual a «jose» y la contraseña es «josehuaman», entonces deberá mostrar otra formulario con la palabra «Bienvenido jose». Caso contrario deberá mostrar: «Nombre y contraseña incorrecta.».
Desarrollando el ejemplo:
CDI Managed Bean EjemploInputSecret.java
package com.josehuaman.ejemplos; import java.io.Serializable; import javax.enterprise.context.RequestScoped; import javax.inject.Named; @Named @RequestScoped public class EjemploInputSecret implements Serializable { private static final long serialVersionUID = 1L; private String nombre; private String contrasena; private String mensaje; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getContrasena() { return contrasena; } public void setContrasena(String contrasena) { this.contrasena = contrasena; } public String getMensaje() { return mensaje; } public void setMensaje(String mensaje) { this.mensaje = mensaje; } public String login(){ if("jose".equals(this.nombre) && "josehuaman".equals(this.contrasena)){ this.mensaje = "Bienvenido jose"; } else { this.mensaje = "Nombre y contraseña incorrecta."; } return "respuesta"; } }
Página JSF con el formulário: ejemploInputSecret.xhtml
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Ejemplo JSF2.3 InputSecret</title> </h:head> <h:body> <h2>Ejemplo JSF2.3 InputSecret</h2> <h:form> <h:outputLabel for="nombre" value="Nombre: "/> <h:inputText id="nombre" value="#{ejemploInputSecret.nombre}" /> <br/> <h:outputLabel for="contrasena" value="Constraseña: "/> <h:inputSecret id="contrasena" value="#{ejemploInputSecret.contrasena}" /> <h:commandButton value="Enviar" action="#{ejemploInputSecret.login()}" /> </h:form> </h:body> </html>
Página JSF con la respuesta. respuesta.xhtml
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Ejemplo JSF2.3 InputSecret - Respuesta</title> </h:head> <h:body> <h2>Ejemplo JSF2.3 InputSecret</h2> <h:form> <h:outputText value="Mensaje: "/> <h:outputText value="#{ejemploInputSecret.mensaje}"/> </h:form> </h:body> </html>
Resultado: http://localhost:8080/ejemplo_web_jsf23/ejemploInputSecret.xhtml
El formulário de entrada:
Formulario de salida: en caso de éxito y de falla.