这是设计使然。您只能指定JSF组件本身支持的属性(即,它在标签文档的属性列表中列出)。您不能指定任意其他属性,所有这些属性都会被忽略。
有几种解决方法:
- 如果您已经在使用JSF 2.2+,只需将其指定为passthrough属性:
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
…
(请注意,我使用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。
创建一个自定义渲染器。您可以在以下答案中找到几个具体示例:
- 如何让JSF传递HTML属性
- 在JSF2 h:inputText组件内使用引导相关标签
- 如何呈现
的自定义属性? - InputText PrimeFace不应用maxlength
- 在JSF中将自定义属性添加到Primefaces自动完成组件



