1

我在 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> 

这段代码是静态的,我可以通过绑定对象获取 selectOne 值PO_DocCategory问题是:是否可以通过动作事件对象获取 actionlistener 中的组件值?

public void processDocumentCategoryValueChange(ActionEvent e) throws Exception {
   // get component value from ActionEvent 
 }
4

1 回答 1

3

JSF 中的经典方式是使用输入组件的 value 属性,例如:

<h:selectOneMenu value="#{bean.value}">
    ...
</h:selectOneMenu>

输入值将存储在 的value属性中bean,并且可以被动作监听器用来操作。

仍然可以以“替代”方式获取动作侦听器中的值:

((EditableValueHolder) event.getComponent().getParent()).getValue() 
于 2013-12-01T10:05:31.133 回答