JSF 2.0 выделяет необходимые атрибуты HTML5

Я работаю с командой JSF, занимающейся разработкой интерфейса. Мы выводим поле INPUT, и мне нужно включить placeholder и несколько атрибутов data- в обработанный тег. Однако JSF лишает их возможности. Я не знаю JSF, чтобы оказать большую помощь команде JSF, но подумал, что я мог бы хотя бы спросить.

Мы использовали более старую версию JSF, но обновили ее до 2.0, поскольку оказалось, что она поддерживает HTML5. Разве это не так? Есть ли известный способ обойти это?

Ответ 1

JSF точно не удаляет их. Он просто игнорирует их, потому что они не относятся к поддерживаемым/известным атрибутам рассматриваемого компонента. В случае, например, <h:inputText> (который по умолчанию помечает тег HTML <input type="text">), вы можете найти все поддерживаемые атрибуты в языке декларации вида (VDL) документация.

Чтобы преодолеть это, вам нужно создать настраиваемый компонент или, лучше, просто custom renderer, который переопределяет стандартный рендерер <h:inputText> и учитывает пользовательские атрибуты.

Ответ 2

Если вы используете Facelet, вы можете просто написать в компонентах HTML5 выражение EL.

Например, видео:

<video name="myVideo" poster="#{bean.poster}" > 
    <source src="#{bean.vidoeSrc}" type='video/ogg; codecs=&quot;theora, vorbis&quot;' /> 
</video>

Таким образом, вы можете использовать ЛЮБОЙ компонент HTML5, а привязка будет для JSF как других компонентов JSF. вы также можете использовать ту же идею в элементе ввода HTML.

EDITED

Для заполнителя вы можете использовать PrimeFaces в месте. Ознакомьтесь с их компонентами для получения более подробной информации.