0

スキンを選択できるコード行があります。

<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();
}

理由はありますか?

4

2 に答える 2

2

タグonchangeに属性はありません。属性をにf:selectItems移行すると、これが機能するはずです。onchangeh:selectOneMenu

h:selectOneMenuHTMLselectタグとして生成されf:selectItemsoptionタグです。だから本当にタグonchangeにあるはずです。select

于 2013-02-21T10:44:11.900 に答える
2

f:selectItems コンポーネントで Change を与える代わりに、h:selectOneMenuコンポーネントでonchange="submit()"を与えて試してみてください。それはうまくいくはずです。

于 2013-02-21T11:01:29.500 に答える