By my opinion and opinion of guys from guys from
http://www.seznam.cz (it is one of the first and biggest Czech Republic portals) the Java Script preventing user action sux, because the user might have JS disabled. IMO the best way how to disable multiple submit is to keep hidden variable with some number, and check the number. When I use some command buttons, I alse use some entities with it(some editing ...) and when i need to edit entity, i use @Version annotation for OptimisticLock. I think this might be the way