Aunque cueste creerlo, éste no es realmente un bug de JavaServer Faces directamente, sino del servidor de aplicaciones que se esté usando. A partir de la versión 1.2, JSF utilizará la implementación del ELParser provista por el servidor web para evaluar las expresiones JSF. Por lo tanto, dependiendo del servidor que estén usando puede que nunca se hayan topado con este bug (de hecho el bug es totalmente dependiente de la plataforma en la que se esté corriendo). Este problema es muy común en los Apache Tomcat de la versión 6.0.16 para arriba. (Yo uso la 6.0.20 y me pasa.)
Para solucionarlo, no se rompan la cabeza destrozando el código, agregando converters horribles que sólo lo van a hacer sentir peores programadores a ustedes, o lo que sea. Si usan Tomcat, basta con agregar este argumento a la Java Virtual Machine (JVM) cuando vayan a ejecutar el startup:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
(No sé a quién se le pudo ocurrir que por defecto fuera true.)
Si están levantando el Tomcat desde una consola de Linux, deben agregarle el argumento a la variable JAVA_OPTS en el catalina.sh de la carpeta lib. Por ejemplo, yo tengo:
if [ -z "$LOGGING_MANAGER" ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dorg.apache.el.parser.COERCE_TO_ZERO=false"
else
JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"
fi
Si usan Windows deberán hacer lo mismo con la variable de entorno JAVA_OPTS, pero en el catalina.bat.
IMPORTANTE: Si levantan el Tomcat desde el Eclipse (usando el plugin Sysdeo) tienen que agregarlo como JVM Parameter. Para eso van a Window --> Preferences --> Tomcat --> JVM Settings --> Append to JVM Parameters y escriben -Dorg.apache.el.parser.COERCE_TO_ZERO=false como indiqué más arriba.
¡Ya está! Si todo salió bien, la próxima vez que levanten el Tomcat y corran la aplicación, los values de los input-text no agregarán más ceros en los Numbers, ni false en los Booleans.
------------------------------------------
http://forums.sun.com/thread.jspa?threadID=5359447
https://jsp-spec-public.dev.java.net/issues/show_bug.cgi?id=183