JSF SelectOneMenu对OnValueChanged没有反应
我有这行代码,我可以选择一个皮肤JSF SelectOneMenu对OnValueChanged没有反应,jsf,selectonemenu,valuechangelistener,Jsf,Selectonemenu,Valuechangelistener,我有这行代码,我可以选择一个皮肤 <h:form> <h:selectOneMenu id="dropdownSkin" value="#{helloBean.currentSkin.name}" defaultLabel="Select a skin.." valueChangeListener="#{helloBean.skinValueChanged}"> <f:selectItems value="#{
<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>
知道为什么吗?在
f:selectItems
标签上没有onchange
属性。将您的onchange
属性迁移到h:selectOneMenu
,这应该可以工作
h:selectOneMenu
生成为HTMLselect
tag,而f:selectItems
是选项
标记。所以onchange
确实应该在select
标签中。在f:selectItems
标签上没有onchange
属性。将您的onchange
属性迁移到h:selectOneMenu
,这应该可以工作
h:selectOneMenu
生成为HTMLselect
tag,而f:selectItems
是选项
标记。因此,onchange
确实应该在select
标记中。不要在f:selectItems组件中给出更改,尝试为h:selectOneMenu组件给出onchange=“submit()”,然后重试。它应该可以工作。不要在f:selectItems组件中进行更改,而是尝试为h:selectOneMenu组件提供onchange=“submit()”,然后重试。它应该会起作用
public void skinValueChanged(ValueChangeEvent e) {
currentSkin = (Skin) e.getNewValue();
}