AXOPEN

JSF – javax.faces.ViewState – autocomplete off

Le problème de l’autocomplete off

Lorsque l’on crée un formulaire JSF (<h:form>), le moteur de rendu crée bien sûr une balise HTML <form>, mais il ajoute également plusieurs <input> de type hidden. Entre autre, le javax.faces.ViewState qui permet de récupérer l’état de vos composants d’une requête HTTP à l’autre. Le problème vient du fait que Mojarra, l’implémentation de référence, a la fâcheuse manie d’ajouter l’attribut autocomplete= »off » sur chacun de ces input ViewState. 

Là où le bât blesse, c’est que cet ajout qui n’est d’aucune utilité provoque une erreur lorsque l’on passe son code au validateur W3C, chose que l’on peut être amené à faire dans une démarche d’accessibilité et/ou de référencement.

La solution : context param

Heureusement une solution existe : comme toujours, JSF propose une correction de bug sous la forme d’un paramétrage. Vous avez donc un <context-param> spécifique pour cette situation, à insérer simplement dans votre fichier web.xml :


    com.sun.faces.autoCompleteOffOnViewState
    false

La valeur « true » ajoute l’autocomplete, « false » le supprime.