Идентификатор составного компонента JSF - PullRequest
5 голосов
/ 06 января 2011

Я создал составной компонент JSF для расширения 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>

Чтобы использовать этот компонент ..

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

Когда этот компонент отображается в браузере, идентификатор имеет формат «firstName: firstName».

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

Это стандартное соглашение об именах с шаблонами JSF 2.0? Я не получил это с шаблонами JSF 1.2 Facelets. Есть ли способ генерировать идентификатор как просто «firstName» вместо «firstName: firstName»

1 Ответ

9 голосов
/ 06 января 2011

Составной компонент JSF 2.0 отличается от шаблона JSF 1.x / 2.x Facelets.

Составной компонент также имеет свой идентификатор. Вы в основном повторно используете его в компонентах реализации составного компонента. Возможно, вы захотите добавить или переименовать другой атрибут ID для компонентов в реализации. Э.Г.

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

с

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

Однако в HTML он будет выглядеть как id="ccId:firstName", где ccId является либо фиксированным, либо автоматически сгенерированным id из my:inputText. Вы также можете просто оставить его и использовать

<h:inputText id="input">

Что в HTML означает id="firstName:input".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...