我希望在selectOneMenu的选定值发生变化时触发Ajax事件。
我们的想法是根据新值更新textArea。
<h:form id="selectForm">
<h:graphicImage id="carImage">
</h:graphicImage>
<h:selectOneMenu id="carList" value="#{RequestBean.index}">
<f:selectItems value="#{CarInfoBean.allCarNames}" itemLabel="#{CarInfoBean.carNumber}" />
<f:ajax render="carDescription"/>
</h:selectOneMenu>
<br/>
<h:inputTextarea id="carDescription" value="#{RequestBean.infoString}" readonly="true" >
</h:inputTextarea>
</h:form>
我很困惑的部分是我如何触发事件。我是否需要select标签中的valueChangeListener?我是否为selectOneMenu的change属性设置了一些内容,还是可以在某种程度上指定ajax标记中的触发事件?
谢谢, Sam French
答案 0 :(得分:1)
ajax-Listener应该做的事情:
<h:selectOneMenu ...>
...
<f:ajax event="change" execute="@this" listener="#{CarInfoBean.foo()}" render="carDescription" />
</h:selectOneMenu>
(注意:您必须使用 update 属性,因为呈现属性执行something different。)