personnalisée - les balises html et leurs attributs pdf



Les attributs de balise HTML personnalisés ne sont pas rendus par JSF (1)

Je souhaite ajouter des attributs de balises spécifiques à iOS à mon formulaire de connexion. Si j'ai un aperçu de la source de ma page Web, les attributs à correction automatique, à autocapitalisation et à vérification orthographique ne sont pas disponibles. Quelle est la raison pour ça? J'utilise JSF 2.x.

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

C'est par conception. Vous ne pouvez spécifier que les attributs supported en supported par le composant JSF lui-même (c'est-à-dire qu'il est répertorié dans la liste d'attributs de la documentation de la balise ). Vous ne pouvez pas spécifier des attributs supplémentaires arbitraires, ils seront tous ignorés.

Il existe plusieurs façons de résoudre ce problème:

  1. Si vous êtes déjà sur JSF 2.2+, spécifiez-le simplement comme attribut passthrough :

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

    (notez que j'utilise xmlns:a au lieu de xmlns:p pour éviter les conflits avec l'espace de nommage par défaut de PrimeFaces)

    Ou:

    <html ... xmlns:f="http://xmlns.jcp.org/jsf/core">
    ...
    <h:inputText ...>
        <f:passThroughAttribute name="autocorrect" value="off" />
    </h:inputText>
    
  2. Utilisez OmniFaces Html5RenderKit . Depuis la version 1.5, il prend en charge la spécification d'attributs personnalisés par <context-param> . Voir aussi l' exemple de vitrine ou Javadoc .

  3. Créez un moteur de rendu personnalisé. Vous trouverez plusieurs exemples concrets dans les réponses ci-dessous:





renderer