I know there are a number of posts about converting empty string to null in JSF2. The usual prescription is to add the following to web.xml.
This is not Mojarra specific. This is Tomcat specific (JBoss uses Tomcat as servletcontainer). Add the following VM argument to startup options.
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
To my experience, this one should actually only apply on Number
properties (int, long, etc), however since a certain late Tomcat 6.0.x version (at least after 6.0.20) it seems to be broken for strings as well and it is relying on the above VM argument.
On GlassFish 3.x for example it works perfectly fine out the box.