2011-02-08 14 views
2

<h:selectOneMenu>の中に<a4j:support>という1つが書かれています。 私は、現在選択されている値を<a4j:support>に渡して、アクションのパラメータとして渡す必要があります。 どうすればいいですか?a4jで渡すパラメータとして選択した値を渡す方法:

<rich:modalPanel> 

<a4j:form> 
<rich:dataTable value="#{factoryCollectionOfUsers}" var="foo"> 
<h:selectOneMenu name="role"> 
         <s:selectItems 
          value="#{userAction.roleArray}" 
          var="role" label="#{role}" 
          noSelectionLabel="Please select" /> 
         <a4j:support event="onchange" ajaxSingle="true" 
          action="#{userAction.setSelection}"> 
         </a4j:support> 
         <s:convertEnum /> 

       </h:selectOneMenu> 
    </rich:dataTable> 
</a4j:form> 
</rich:modalPanel> 
+1

あなたが使用しなければならないのはなぜ?なぜリスナーを使用しないのですか? –

+0

私はvaluechangististenerを試しましたが、それも動作しません。 – Anand

+0

次に、使用しているコードを表示する必要があります。

答えて

0

このような何か試してください:あなたのコンポーネント

<h:form> 
    <h:selectOneMenu value="#{foo.theChosenValue}" 
    required="true" valueChangeListener="#{foo.processValueChange}" 
    onchange="this.form.submit();"> 
     <s:selectItems 
         value="#{userAction.roleArray}" 
         var="role" label="#{role}" 
         noSelectionLabel="Please select" /> 
    <s:convertEnum /> 
    </h:selectOneMenu> 
</h:form> 

はその後すべき:サポート:

@Name("foo") 
public class Foo { 
    @Getter @Setter Enum theChosenValue; //I don't know your type 

    public void processValueChange(ValueChangeEvent value) throws AbortProcessingException { 
     if (value != null) { 
      if (value.getNewValue() instanceof Enum) { 
       this.theChosenValue = (Enum) value.getNewValue(); 
      } 
     } 
    } 
}