2013-02-21 69 views
0

我有這行代碼,我可以在其中選擇皮膚。JSF SelectOneMenu對OnValueChanged沒有反應

<h:form> 
    <h:selectOneMenu id="dropdownSkin" 
     value="#{helloBean.currentSkin.name}" defaultLabel="Select a skin.." 
     valueChangeListener="#{helloBean.skinValueChanged}"> 
     <f:selectItems value="#{helloBean.mySkinsSI}" var="c" 
      itemValue="#{c.value}" immediate="true" onchange="this.form.submit()" /> 
    </h:selectOneMenu> 
    <br /> 

    <h:inputText id="name" value="#{helloBean.currentSkin.name}"></h:inputText> 
    <br /> 
    <h:inputText id="tcolor" value="#{helloBean.currentSkin.tcolor}"></h:inputText> 
    <br /> 
    <h:inputText id="bcolor" value="#{helloBean.currentSkin.bcolor}"></h:inputText> 
</h:form> 

但我調試它,它從來沒有進入我的方法:

public void skinValueChanged(ValueChangeEvent e) { 
    currentSkin = (Skin) e.getNewValue(); 
} 

任何想法,爲什麼?

回答

2

f:selectItems標籤上沒有onchange屬性。將您的onchange屬性遷移到h:selectOneMenu,這應該起作用。

h:selectOneMenu生成爲HTML select標記,而f:selectItemsoption標記。所以onchange真的應該在select標籤。

2

,而不是F中的變化,並提供:selectItems的成分,儘量給的onchange = 「提交()」H:selectOneMenu用於組件和嘗試。它應該工作。