Frage

Ich habe eine JSF-Verbundkomponente h zu verlängern: 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>

Um diese Komponente zu verwenden ..

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

Wenn diese Komponente im Browser gerendert wird, die ID des Formats. „VorName: vorName“

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

Ist das ein Standardnamenskonvention mit JSF 2.0-Vorlagen? Ich habe dies nicht mit JSF 1.2 Facelets Vorlagen. Gibt es eine Möglichkeit, die ID nur als „Vornamen“ statt zu erzeugen „Vornamen: vorName“

War es hilfreich?

Lösung

Ein JSF 2.0 Verbundbauteil ist nicht das gleiche wie ein JSF 1.x / 2.x Facelets Vorlage.

Die Verbundkomponente hat ihre eigene ID als auch. Sie Wiederverwendung es im Grunde auf den Komponenten bei der Umsetzung des Verbundbauteils. Sie können eine andere ID-Attribut hinzufügen oder umbenennen für die Komponenten bei der Umsetzung berücksichtigen wollen. Z.

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

mit

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

Es wird jedoch als id="ccId:firstName" in HTML landen, wo ccId entweder die feste oder automatisch generierte id von my:inputText. Sie können auch lassen Sie es einfach weg und Verwendung

<h:inputText id="input">

Welche oben als id="firstName:input" endet in HTML.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top