Ответ 1
Это по дизайну. Вы можете указать только атрибуты, которые поддерживаются самим компонентом JSF (т.е. Он указан в списке атрибутов в документация тегов). Вы не можете указать произвольные дополнительные атрибуты, все они будут проигнорированы.
Существует несколько способов решить эту проблему:
-
Если вы уже используете JSF 2.2+, просто укажите его как атрибут passthrough:
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough"> ... <h:inputText ... a:autocorrect="off" />
(обратите внимание, что я использую
xmlns:a
вместоxmlns:p
, чтобы избежать столкновения с пространством имен по умолчанию PrimeFaces)Или:
<html ... xmlns:f="http://xmlns.jcp.org/jsf/core"> ... <h:inputText ...> <f:passThroughAttribute name="autocorrect" value="off" /> </h:inputText>
-
Используйте OmniFaces
Html5RenderKit
. Начиная с версии 1.5, она поддерживает указание пользовательских атрибутов на<context-param>
. См. Также демонстрационный пример или Javadoc. -
Создайте собственный рендерер. Вы можете найти несколько конкретных примеров в следующих ответах: