Para crear un campo oculto en un formulario web en JSF utilizamos la etiqueta h inputHidden. Esta etiqueta debe estar ubicada en un <h:form> y al ser procesada la página se renderiza un <input type=»hidden«> de HTML que nos permite pasar datos no visibles al enviar un formulario. Se debe tener en cuenta que los datos contenidos por un input hidden se pueden visualizar abriendo el código fuente de la página o con una herramienta de debug. La etiqueta debe tener asignados al menos los atributos:
id | si necesitamos hacer referencia al componente. Cuando la página se procesa este atributo se renderiza como el atributo ‘name’ de la etiqueta de HTML. |
value | para hacer referencia al valor asignado al componente. |
El siguiente código:
<h:form>
<h:inputHidden id="nombre" value="JUAN" />
</h:form>
Al ser procesado se obtiene el siguiente elemento HTML:
<input id="j_idt13:nombre" type="hidden" name="j_idt13:nombre" value="JUAN">
Notar que los valores de los atributos id y name tienen un prefijo aleatorio seguido del valor que asignamos a id en la etiqueta h inputHidden de JSF. Para que este valor sea descriptivo hay que asignar un id a <h:form>.
<h:form id="customerForm">
<h:inputHidden id="nombre" value="JUAN" />
</h:form>
Al ser procesado se obtiene el siguiente HTML:
<input id="customerForm:nombre" type="hidden" name="customerForm:nombre" value="JUAN">
Para poder manipular el valor del campo de texto desde el Managed Bean correspondiente, necesitamos usar una expresión para hacer referencia al atributo del Bean:
<h:inputHidden id="nombre" value="#{bean.firstName}" />
Conclusión
En resumen, el componente h:inputHidden
de JavaServer Faces ofrece una solución eficiente para manejar datos en aplicaciones web, especialmente cuando se requiere almacenar información que no debe ser visible ni editable por el usuario. El uso de h:inputHidden
permite transferir datos de manera segura entre peticiones HTTP sin comprometer la integridad de la interfaz de usuario. Esto permite mantener el estado y los datos necesarios de forma transparente, simplificando la lógica de la aplicación y mejorando la eficiencia en la gestión de datos. Su correcta implementación no solo optimiza el rendimiento, sino que también refuerza la seguridad de la aplicación al evitar la exposición innecesaria de información sensible.
Te puede interesar
JSF inputSecret
El componente JSF inputSecret permite crear un elemento de HTML. En este artículo se explica su utilización y ejemplos.
JSF inputText
El componente JSF inputText permite crear un elemento de HTML. En este artículo se explica su utilización y ejemplos.