Question

I a créé un constituant composite à base JSF pour étendre h: inputBox

        <p class="label clear">
            <label for="#{cc.attrs.id}" class="">
                #{cc.attrs.label}:
            </label>
        </p>
        <p>
            <h:inputText id="#{cc.attrs.id}" value="#{cc.attrs.value}" 
                size="#{cc.attrs.size}" />
            <ui:fragment rendered="#{cc.attrs.optional eq 'optional'}">
                <span class="optional">Optional</span>
            </ui:fragment>
        </p>

Pour utiliser ce composant ..

<my:inputText id="firstName" label="First Name" value="#{nameTO.firstName}"/>

Lorsque ce composant est rendu sur le navigateur, l'ID est du format. "Prenom: firstName"

<input type="text" value="" name="firstName:firstName" id="firstName:firstName" gtbfieldid="3028">

Est-ce une convention de nommage standard avec les modèles JSF 2.0? Je n'ai pas cela avec JSF 1.2 modèles de Facelets. Est-il possible de générer l'ID comme juste « prenom » au lieu de « prenom: firstName »

Était-ce utile?

La solution

Un composant composite JSF 2.0 est pas identique à un JSF 1.x / 2.x modèle Facelets.

Le composant composite a son propre ID ainsi. Vous réutilisez essentiellement sur les composants dans la mise en œuvre de la composante composite. Vous pouvez envisager d'ajouter ou de renommer un autre attribut d'identification pour les composants dans la mise en œuvre. Par exemple.

<my:inputText name="firstName" label="First Name" value="#{nameTO.firstName}" />

avec

<h:inputText id="#{cc.attrs.name}">

Il finira cependant comme id="ccId:firstName" en HTML où ccId est soit le id fixe ou autogénérés de my:inputText. Vous pouvez aussi laisser l'écart et l'utilisation

<h:inputText id="input">

qui se termine comme id="firstName:input" en HTML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top