Вам необходимо включить поле ввода в атрибут execute
<f:ajax>
, чтобы он также обрабатывался, иначе он просто будет полностью проигнорирован.
<h:inputText id="amount" ... />
<h:commandButton ...>
<f:ajax execute="@this amount" ... />
</h:commandButton>
Или просто сложите целое в одну форму и используйте execute="@form"
.
<h:form>
<h:inputText ... />
<h:commandButton ...>
<f:ajax execute="@form" ... />
</h:commandButton>
</h:form>
Кстати, render="@all"
побеждает одно из главных преимуществ использования ajax. Старайтесь отображать только те компоненты, которые на самом деле необходимо обновить.