We are using JSF-2.1.7 and in all our form post requests. I am trying to justify whether to use or .
There is no functional difference apart from the generated markup and the appearance. The generates a HTML element and the generates a HTML element which uses JavaScript to submit the form. Both are to be used to submit a form. Additional styling is irrelevant to the functionality.
Use the if you need a submit button and use the if you need a submit link. If that doesn't make sense to you, then I don't know. If you can't decide which one to use, just choose the one which makes the most sense in UI perspective. Ask the web designer if you're unsure.
The difference between and is by the way more interesting. This is been answered in detail here: When should I use h:outputLink instead of h:commandLink?