当按下commandbutton时,Inputtext不与后端bean同步

时间:2012-01-10 22:33:20

标签: ajax jsf jsf-2

当我点击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>

1 个答案:

答案 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的一个主要优点。尝试仅准确呈现实际需要更新的组件。