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 の古典的な方法は、入力コンポーネントの値属性を使用することです。

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

value入力値はの属性に格納されbean、アクション リスナーが操作に使用できます。

「別の」方法でアクション リスナーの値を取得することも可能です。

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