Texto predeterminado (marcador de posición) en el componente InputText

introduzca la descripción de la imagen aquí

Quiero mostrar un texto informativo predeterminado en el componente inputSext de JSF / Primefaces.

  • Este texto debería desaparecer cuando el usuario haga clic en el campo Texto.
  • Aparece cuando hace clic fuera sin teclear nada.
  • Si el usuario envía el formulario sin ningún valor, este valor predeterminado no debe establecerse en la propiedad de Bean.

Soy consciente de que establecer el valor predeterminado para BeanProperty en ManagedBean funcionará, pero no quiero eso.
Por favor sugiera cualquier ajuste de JQuery, si es posible.
Redirigirme a la Pregunta correcta si esta pregunta es Duplicar.

Primefaces proporciona un atributo de placeholder en sus últimas versiones que puede usar para p:inputText . Además, existe un componente p:watermark que crea una solución basada en JS para la compatibilidad del navegador heredado. Por lo tanto, definitivamente no es necesario establecer un valor predeterminado en el bean de respaldo. Solo usa una de las siguientes soluciones:

   

Para los navegadores heredados:

    

Además, si usa JSF 2.2 , puede usar sus atributos de acceso directo. Agregando xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" espacio de nombres a su página, puede lograrlo de la siguiente manera, tanto para JSF h:inputText y Primefaces p:inputText :

  

O envolviéndolo en la etiqueta con un TagHandler:

    

Lo que crea una entrada basada en HTML 5 con atributo de placeholder :

  

Un tweak de jQuery sería:

   

No es necesario que coloque un componente adicional para establecer solo los atributos, y puede enriquecer las entradas (si es necesario).