Dans PrimeFaces, vous pouvez utiliser
<p: watermark>
pour afficher l’effet de filigrane sur le champ de saisie. Ce composant en filigrane utilise l’attribut
placeholder
de HTML5 dans les navigateurs pris en charge tels que Safari, Chrome et Firefox, et fait appel à la solution JavaScript pour les navigateurs non pris en charge, tels que IE.
Afficher le texte en filigrane dans le champ de saisie
<p:inputText id="username" required="true" label="username" size="40" value="#{userBean.username}"/> <p:watermark for="username" value="Username ** "/>
Dans ce didacticiel, nous allons vous montrer comment utiliser le composant de filigrane de PrimeFaces pour créer un effet de filigrane et styliser la couleur du texte.
Les outils utilisés :
-
PrimeFaces 3.3
-
JSF 2.2.11
-
Eclipse 4.2
-
Maven 3
-
Tomcat 7
1. Exemple de filigrane
Ajoutez le texte « nom d’utilisateur ** » en haut du texte saisi (effet de filigrane).
index.xhtml
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <f:facet name="last"> <h:outputStylesheet library="mytheme" name="css/style.css"/> </f:facet> <h1>PrimeFaces watermark example</h1> <div style="width: 500px"> <h:form> <p:inputText id="username" required="true" label="username" size="40" requiredMessage="Please enter your username." value="#{userBean.username}"> <f:validateLength minimum="3" maximum="20"/> </p:inputText> <p:watermark for="username" value="Username ** "/> <p:message for="username"/> <p:commandButton value="test" style="margin:20px" action="#{userBean.register}" ajax="false"/> </h:form> </div> </h:body> </html>
UserBean.java - Ne rien faire
package com.mkyong; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name = "userBean") @SessionScoped public class UserBean { String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String register(){ return "thanks"; } }
3. Changer la couleur du texte
Une demande courante consiste à modifier le texte de couleur grise par défaut. Pour le styler, vous aurez besoin des propriétés CSS des espaces réservés du préfixe du vendeur:
…./ chorme and safari /::-webkit-input-placeholder { color: blue !important; font-weight: normal !important; } / firefox /:-moz-placeholder { color: blue !important; font-weight: normal !important; } / IE /.ui-watermark { color: blue !important; font-weight: normal !important; }
Pour IE, non pris en charge pour l'espace réservé HTML5, PrimeFaces ajoutera un `.ui-watermark` supplémentaire. Voir démo, la couleur du texte du filigrane est changée en «bleu». image://wp-content/uploads/2012/10/primefaces-watermark-style.png[Couleur du texte du filigrane des primefaces, title = "primefaces-watermark-style", width = 592, height = 362] __P.S testé sur IE9, Chrome et Safari.__ === Télécharger le code source Téléchargez-le - lien://wp-content/uploads/2012/10/primefaces-watermark-example.zip[primefaces-watermark-example.zip](11 KB) === Références . http://www.primefaces.org/showcase/ui/watermark.jsf[PrimeFaces vitrine des composants en filigrane]. http://forum.primefaces.org/viewtopic.php?f=3&t=17420[Comment changer couleur du texte de <p: filigrane>]. http://stackoverflow.com/questions/2610497/change-an-inputs-html5-placeholder-color-with-cssewise Couleur de l'espace réservé HTML5 d'une entrée avec CSS]. http://www.splashnology.com/article/html5-placeholder-stylization-with-the-help-of-css/[HTML5 Stylisation des espaces réservés à l'aide de CSS]. http://css-tricks.com/snippets/css/style-placeholder-text/[Style Texte fictif] lien://tag/primefaces/[primefaces]lien://tag/filigrane/[filigrane]