JSF中的经典方法是使用输入组件的值属性,例如:
我在jsf 1.1中使用ajax4jsf,我的代码如下:
<h:selectOneMenu id="INPUT_PO_DocCategory" binding="#{PrinceOfficeBean.PO_DocCategory}" style="width:200px;">
<f:selectItem itemLabel="test" itemValue="123"/>
<f:selectItem itemLabel="test2" itemValue="456"/>
<a4j:support event="onchange" actionListener="#{PrinceOfficeBean.processDocumentCategoryValueChange}" reRender="INPUT_PO_DocType" />
</h:selectOneMenu>
这段代码是静态的,我可以通过PO_DocCategory
绑定对象获得selectOne值问题是:是否可以通过action事件对象获取actionlistener中的组件值?
public void processDocumentCategoryValueChange(ActionEvent e) throws Exception {
// get component value from ActionEvent
}
<h:selectOneMenu value="#{bean.value}">
...
</h:selectOneMenu>
输入值将存储在bean
的value
属性中,动作监听器可以使用该属性进行操作
仍然可以通过"替代"方式在动作侦听器中获取值:
((EditableValueHolder) event.getComponent().getParent()).getValue()