Esta librería de acciones proporciona funciones de uso general.
– f:verbatim: Renderiza el contenido tal cual se suministra. Útil para añadir bloques HTML propios que no deben procesarse por JSP.
<f:verbatim><div class="especial"></f:verbatim> ... <f:verbatim></div></f:verbatim>
– f:view: Contenedor principal de todos los componentes de una vista. Útil para añadir el tipo de contenido, el juego de caracteres o la configuración regional.
<f:view contentType="text/html" encoding="UTF-8"> ... </f:view>
– f:subview: Contenedor de todos los componentes incluidos a través de una acción jsp:include
o c:import
. Es obligatorio utilizarlo cuando se quiere incluir una página JSP o JSF utilizando las acciones jsp:include
o c:import
.
<f:subview> <jsp:include page="un.jsp"/> </f:subview>
– f:viewParam: Captura el valor de los parámetros HTTP de una petición. Utilizado conjuntamente con f:metadata
.
<f:metadata> <f:viewParam name="idUsuario" value="#{bean.idUsuario}"/> </f:metadata>
– f:metada: Define un bloque de metainformación para una vista. Utilizado en conjunción con f:viewParam
.
– f:localBundle: Carga un recurso de mensajes de texto de forma local a una vista y lo expone como un Map
de (clave, texto). Los ficheros de mensajes tienen que estar ubicados dentro de una carpeta del directorio resources dentro del war de la aplicación.
<f:loadBundle basename="i18n" var="mensajes"/>
Si se quieren cargar los mensajes de forma global para toda una aplicación se pueden declarar en el fichero faces-config.xml.
<application> <resource-bundle> <base-name>i18n</base-name> <var>mensajes</var> </resource-bundle> </application>
Para utilizar los mensajes hay que utilizar el nombre de la variable indicada y la clave del mensaje correspondiente.
<h:outputText value="#{mensajes.clave}"/>
– f:facet: Añade una característica a un componente. Dicha característica actúa como «rol» de dicho componente para distinguirlo del resto.
<h:dataTable value="#{usuarios}" var="usuario"> <h:column> <f:facet name="header"> <h:outputText value="Nombre"></h:outputText> </f:facet> <h:outputText value="#{usuario.nombre}"></h:outputText> </h:column> ... </h:dataTable>
– f:validateRequired: Fuerza a que un componente se le tenga que introducir un valor.
<h:inputText ... value="#{usuario.password}"> <f:validateRequired/> </h:inputText>
– f:validateLength: Añade un validador de tipo LengthValidator
a un componente. Comprueba que la longitud de la cadena de texto que almacena el valor esté dentro de un rango.
<h:inputText ... value="#{cliente.nombre}"> <f:validateLength minimum="3" maximum="25"/> </h:inputText>
– f:validateDoubleRange: Añade un validador de tipo DoubleRangeValidator
a un componente. Comprueba que la variable numérica que almacena el valor esté dentro de un rango.
<h:inputText ... value="#{cliente.saldo}"> <f:validateDoubleRange minimum="0.01"/> </h:inputText>
– f:validateLongRange: Añade un validador de tipo LongRangeValidator
a un componente. Comprueba que la variable numérica que almacena el valor, o la cadena de texto que representa un número, esté dentro de un rango.
<h:inputText ... value="#{cliente.cuentas}"> <f:validateLongRange minimum="1"/> </h:inputText>
– f:validateRegex: Añade un validador de tipo RegExValidator
a un componente. Comprueba que la cadena de texto que almacena el valor case con un patrón dado.
<h:inputText ... value="#{cliente.alias}"> <f:validateRegex pattern="[a-zA-Z0-9]+"/> </h:inputText>
– f:validator: Añade un validador a un componente que llama a un método concreto dado.
<h:inputText ... value="#{usuario.nombre}" validator="#{usuario.validateNombre}">
– f:validateBean: Delega la validación de un componente a un validador de tipo BeanValidator
personalizado.
– f:convertNumber: Añade un convertidor de tipo NumberConverter
a un componente. Especifica como convertir un valor numérico desde y hacía su representación en formato de texto.
<h:outputText value="#{pedido.total}"> <f:convertNumber currencySymbol="€" type="currency"/> </h:outputText>
– f:convertDateTime: Añade un convertidor de tipo DateTimeConverter
a un componente. Especifica como convertir un valor de tipo fecha desde y hacía su representación en formato de texto.
<h:outputText value="#{persona.nacimiento}"> <f:convertDateTime pattern="dd/MM/yyyy"/> </h:outputText>
– f:converter: Añade un convertidor específico a un componente.
<h:selectOneMenu value="#{cliente.ciudad}"> <f:converter converterId="ciudadConverter"></f:converter> <f:selectItems value="#{pais.ciudades}"></f:selectItems> </h:selectOneMenu>
– f:actionListener: Añade un listener de acción a un componente.
<h:form id="formulario"> <h:commandLink id="enlace" action="enlazar"> <h:outputText value="#{usuario.nombre}"/> <f:actionListener type="com.company.listeners.Accion"/> </h:commandLink>
– f:valueChangeListener: Añade un listener por cambio de valor a un componente.
<h:inputText id="nombre" value="#{usuario.nombre}"> <f:valueChangeListener binding="#{usuario.escuchador}"/> </h:inputText>
– f:setPropertyActionListener: Añade un listener especial a un componente cuyo único propósito es establecer el valor de la propiedad de un bean cuando un formulario es enviado al servidor.
... <f:setPropertyActionListener target="#{requestScope.seleccionado}" value="#{articulo}"/> ...
– f:event: Añade un listener de eventos del ciclo de vida de un componente.
... <f:event type="preRenderView" listener="#{componente.escuchador}"/> ...
– f:phaseListener: Añade un listener de eventos de ciclo de vida de fase a una vista.
... <f:phaseListener binding="#{usuario.escuchador}"/> ...
– f:ajax: Añade una acción Ajax a un componente. Esta acción permite que se ejecute código en el servidor sin tener que recargar la página. Los atributos principales son execute
y render
que especifican listas de componentes, separadas por espacio, que tienen que ejecutarse en el servidor al realizar la llamada y recibir la respuesta respectivamente.
<h:commandButton value="Comprobar"> <f:ajax render="resultado"/> </h:commandButton> <h:outputText id="resultado" value="#{bean.resultado}"/>
– f:attribute: Añade un atributo a un componente.
<h:commandButton"> <f:attribute name="value" value="Botón"/> </h:commandButton>
El código anterior es equivalente a la siguiente declaración utilizando la forma clásica de escribir los atributos:
<h:commandButton" value="Botón"/>
También puede utilizarse para añadir atributos de forma genérica y que puedan ser utilizados desde los métodos de los beans.
<h:commandButton actionListener="#{bean.escuchador}"> <f:attribute name="nombre" value=valor"/> </h:commandButton>
Desde un listener, por ejemplo, puede accederse a los atributos con la siguiente cadena:
event.getComponent().getAttributes().get("nombre");
– f:param: Añade un parámetro genérico a un componente. Se utiliza en conjunción con otras acciones.
<h:outputFormat value="Bienvenida al {0}"> <f:param value="convento"/> </h:outputFormat>
– f:selectItem: Representa un elemento dentro de una lista. Se utiliza en conjunción con elementos select
de HTML.
<h:selectOneRadio value="#{usuario.sexo}"> <f:selectItem itemValue="1" itemLabel="Hombre"/> <f:selectItem itemValue="2" itemLabel="Mujer"/> </h:selectOneRadio>
– f:selectItems: Representa una lista de elementos. Se utiliza en conjunción con elementos select
de HTML.
<h:selectOneMenu ...> <f:selectItems value="#{paleta.colores}"/> </h:selectOneMenu>