By default, the f:ajax
will only execute @this
meaning it will only submit the action button, not any of the values of inputs in the form. Try this:
...
<f:ajax execute='@form' render='@form' />
...
See the execute section of the javadoc:
... If a literal is specified the ids must be space delimited. Any of the keywords "@this", "@form", "@all", "@none" may be specified in the id list. If not specified, the default value of "@this" is assumed. For example, @this clientIdOne clientIdTwo.