I would be slightly cautious of using css to convert text to uppercase. This is because it only APPEARS as uppercase - the raw data is still in the exact case that you entered it.
This has caused problems for me on search screens where I am trying to match a search
string with a record in the database. For example: the string 'USER1' is stored in the database. You type 'user1' into the search field on your jsf page (although, due to the css style, what you'll actually see is 'USER1'). You hit go and the application tries to match your search string with any records in the database. Of course, 'user1' is not the same as 'USER1' and so no matches are found. To the user, this appears very wrong since they are under the illusion that their text was converted to uppercase and the search should have therefore returned the record 'USER1'.
Hope this helps