Проблема: Иногда вам может понадобиться получить доступ к компоненту из javascript с помощью
getElementById
, но идентификаторы генерируются динамически в JSF, поэтому вы
нужен метод получения идентификатора объекта. Ниже я отвечу, как это сделать.
Исходный вопрос: Я хочу использовать код, как показано ниже. Как я могу сослаться на JSF-компонент inputText в моем Javascript?
Input Name Page
Please enter your email address:
Обновление : в этом сообщении Идентификаторы клиентов в JSF2.0 обсуждаются такие методы, как:
Предполагается, что атрибут id
в компоненте inputText
создает объект, к которому можно получить доступ с помощью EL, используя # {myInptTxtId}
,
в приведенном выше примере. В статье говорится, что JSF 2.0 добавляет
метод getClientId ()
с нулевым аргументом для класса UIComponent
.
Тем самым разрешив конструкцию # {myInptTxtId.clientId}
, предложенную
выше, чтобы получить фактический сгенерированный идентификатор компонента.
Хотя в моих тестах это не работает. Может ли кто-нибудь еще подтвердить / опровергнуть. Предлагаемые ниже ответы страдают тем недостатком, что указанные выше техника нет. Поэтому было бы хорошо узнать, действительно работает.