Kann Shoodan 100% zustimmen, geht nur mit Javascript.
Und zusätzlich immer serverseitig absichern.
Glaub HTML5 bringt da neue Eingabe Typen mit, aber das kann eh dauern.
Mit JSF lässt sich aber das sehr gut vereinfachen.
Probier mal mein Javascript Framework aus, vielleicht ist das was für dich:
JSAction
In JSF würde serverseitige und clientseitige Integer Prüfung dann so aussehen
<h

utputText ... converertId="integer" styleClass="integer" />
oder wenn mans dann noch mehr vereinfachten Code haben möchte, dann einfach eigenes Tag machen.
Bei mir sieht das dann so aus: <in:integer value="" />
Verbindest das Tag mit eigener Kompo, welche Integer Converter hat und die JSAction Style Klasse "integer" rendert.
Schon hat man mit einem Tag immer gleich client und serverseitige Prüfung.