miércoles, 10 de junio de 2020

Java Server Faces Tag Library

Componentes estándar de HTML 

JSF proporciona un conjunto de componentes para crear HTML con la ayuda de la tecnología de visualización Facelets.

Esos componentes HTML están disponibles en el URI (Uniform Resource Identifier) http://xmlns.jcp.org/jsf/html que debe asignarse al prefijo "h" del espacio de nombres XML como se muestra en el siguiente código en la línea 4:
<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Título</title>
    </h:head>
    <h:body>
        <!--Cuerpo de la página-->
    </h:body>
</html>

Los elementos más importantes para una página JSF deben ser los de <h:head> y <h:body> para luego incluir dentro los demás componentes HTML, sin estos la tecnología JSF no podrá incluir a los recursos de JS u hojas de estilo que se asocian con determinados componentes.

El código anterior generaría una página HTML como la siguiente:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Título</title>
    </head>
    <body>
        <!--Cuerpo de la página-->
    </body>
</html>

Tabla de componentes HTML de JSF
Component tag (Etiqueta del componente) Superclase del componente Salida en HTML
U<h:column> UIColumn <td>
U<h:commandButton> UICommand <input type="submit">
U<h:commandLink> UICommand <a onclick="form.submit()">
U<h:commandScript> UICommand <script>
U<h:dataTable> UIData <table>
U<h:form> UIForm <form method="post">
U<h:graphicImage> UIGraphic <img>
U<h:inputFile> UIInput <input type="file">
U<h:inputHidden> UIInput <input type="hidden">
U<h:inputSecret> UIInput <input type="password">
U<h:inputText> UIInput <input type="text">
U<h:inputTextarea> UIInput <textarea>
U<h:selectBooleanCheckbox> UIInput <input type="checkbox">
U<h:selectManyCheckbox> UIInput <table><input type="checkbox">
U<h:selectManyListbox> UIInput <select multiple size="n"><option>
U<h:selectManyMenu> UIInput <select multiple size="1"><option>
U<h:selectOneListbox> UIInput <select size="n"><option>
U<h:selectOneMenu> UIInput <select size="1"><option>
U<h:selectOneRadio> UIInput <table><input type="radio">
U<h:selectOneRadio group> UIInput <input type="radio" name="group">
U<h:message> UIMessage <span>
U<h:messages> UIMessages <ul>
U<h:messages layout=table> UIMessages <table>
U<h:button> UIOutcomeTarget <button onclick="window.location">
U<h:link> UIOutcomeTarget <a>
U<h:body> UIOutput <body>
U<h:doctype> UIOutput <!DOCTYPE>
U<h:head> UIOutput <head>
U<h:outputFormat> UIOutput <span>
U<h:outputLabel> UIOutput <label>
U<h:outputText> UIOutput <span>
U<h:outputScript> UIOutput <script>
U<h:outputStylesheet> UIOutput <link rel="stylesheet">
U<h:panelGrid> UIPanel <table>
U<h:panelGroup> UIPanel <span>
U<h:panelGroup layout=block> UIPanel <div>


Componentes estándar del Core

JSF proporciona un conjunto de componentes "Core" que dan soporte a configurar declarativamente uno o más componentes de destino HTML.

Esos componentes HTML están disponibles en el URI (Uniform Resource Identifier) http://xmlns.jcp.org/jsf/core que debe asignarse al prefijo "f" del espacio de nombres XML como se muestra en el siguiente código en la línea 5:
<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Título</title>
    </h:head>
    <h:body>
        <!--Cuerpo de la página-->
    </h:body>
</html>

Dentro del tenemos:
Core tag Constructores o manejadores Componente destino
<f:actionListener> javax.faces.event.ActionListener ActionSource
<f:ajax> javax.faces.component.behavior.AjaxBehavior ClientBehaviorHolder(s)
<f:attribute> UIComponent#getAttributes() UIComponent
<f:attributes> UIComponent#getAttributes() UIComponent
<f:convertDateTime> javax.faces.convert.DateTimeConverter (Editable)ValueHolder
<f:convertNumber> javax.faces.convert.NumberConverter (Editable)ValueHolder
<f:converter> javax.faces.convert.Converter (Editable)ValueHolder
<f:event> javax.faces.event.ComponentSystemEvent UIComponent
<f:facet> UIComponent#getFacets() UIComponent
<f:importConstants> javax.faces.component.UIImportConstants UIViewRoot
<f:loadBundle> java.util.ResourceBundle UIViewRoot
<f:metadata> javax.faces.view.ViewMetadata UIViewRoot
<f:param> javax.faces.component.UIParameter UIComponent
<f:passthroughAttribute> UIComponent#getPassthroughAttributes() UIComponent
<f:passthroughAttributes> UIComponent#getPassthroughAttributes() UIComponent
<f:phaseListener> javax.faces.event.PhaseListener UIViewRoot
<f:selectItem> javax.faces.component.UISelectItem UISelectOne/UISelectMany
<f:selectItems> javax.faces.component.UISelectItems UISelectOne/UISelectMany
<f:setPropertyActionListener> javax.faces.event.ActionListener ActionSource
<f:subview> javax.faces.component.NamingContainer UIComponents
<f:validateBean> javax.faces.validator.BeanValidator UIForm
<f:validateDoubleRange> javax.faces.validator.DoubleRangeValidator EditableValueHolder
<f:validateLength> javax.faces.validator.LengthValidator EditableValueHolder
<f:validateLongRange> javax.faces.validator.LongRangeValidator EditableValueHolder
<f:validateRegex> javax.faces.validator.RegexValidator EditableValueHolder
<f:validateRequired> javax.faces.validator.RequiredValidator EditableValueHolder
<f:validateWholeBean> javax.faces.validator.BeanValidator UIForm
<f:validator> javax.faces.validator.Validator EditableValueHolder
<f:valueChangeListener> javax.faces.event.ValueChangeListener EditableValueHolder
<f:view> javax.faces.component.UIViewRoot UIComponents
<f:viewAction> javax.faces.component.UIViewAction UIViewRoot
<f:viewParam> javax.faces.component.UIViewParameter UIViewRoot
<f:websocket> javax.faces.component.UIWebsocket UIViewRoot

No hay comentarios:

Publicar un comentario