当我点击commandButton时,它会输入product.amount开始的值,而不是输入框中当前输入的值。
<h:inputText value="#{product.amount}" />
<h:commandButton id="Button"
value="Buy"
tabindex="2" >
<f:ajax listener="#{shopBean.addToCart(product.product, product.amount)}"
execute="@this"
render="@all" />
</h:commandButton>
答案 0 :(得分:2)
您需要在execute
的{{1}}属性中包含输入字段,以便处理它,否则它将被完全忽略。
<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>
打败了使用ajax的一个主要优点。尝试仅准确呈现实际需要更新的组件。