html - JSF 不呈现自定义 HTML 标记属性

标签 html jsf custom-attributes renderer

我想在我的登录表单中添加一些特定于 iOS 的标签属性。如果我查看网页源代码,会发现自动更正、自动大写和拼写检查属性不存在。这是什么原因?我正在使用 JSF 2.x。

<h:inputText id="user-name" forceId="true" value="#{login.username}" style="width:120px;"
    autocorrect="off" autocapitalize="off" spellcheck="false" />

最佳答案

这是设计使然。您只能指定 supported 的属性由 JSF 组件本身(即它列在 tag documentation 的属性列表中)。您不能指定任意的附加属性,它们都将被忽略。

有几种方法可以解决这个问题:

  1. 如果您已经在使用 JSF 2.2+,只需将其指定为 passthrough attribute :

    <html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
    ...
    <h:inputText ... a:autocorrect="off" />
    

    (请注意,我使用 xmlns:a 而不是 xmlns:p 以避免与 PrimeFaces 默认 namespace 发生冲突)

    或者:

    <html ... xmlns:f="http://xmlns.jcp.org/jsf/core">
    ...
    <h:inputText ...>
        <f:passThroughAttribute name="autocorrect" value="off" />
    </h:inputText>
    

  2. 创建自定义渲染器。您可以在以下答案中找到几个具体示例:

关于html - JSF 不呈现自定义 HTML 标记属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666472/

相关文章:

html - 如何将 css 应用于三个不同的类并悬停其中一个

javascript - 为什么我的 js 与不正确的 html 执行不同?

java - Hibernate+PostgreSQL 抛出JDBCConnectionException : Cannot open connection

backend - 使用 EAV 的客户自定义属性不在网格中显示值

java - Vaadin 为网格中的选定行设置背景颜色

javascript - 无法读取 Javascript 文件(非脚本标记)中 null 的属性(读取 'addEventListener' )

android - 接下来查看 id 作为 android 中的自定义属性

c# - 调试器未进入自定义属性类

javascript - 谷歌分析实验导致格式正确的字符数据或标记错误

java - Hibernate 初始 SessionFactory 创建失败