【发布时间】:2015-11-11 12:15:56
【问题描述】:
我想按一个按钮并更改 p:selectOneMenu 选择的值 服务器端代码如果满足某些条件。
<p:selectOneMenu value="#{myObject.id_state}" id="changeid_state"
immediate="true" valueChangeListener="#{home.changeState}" onchange="this.form.submit()" widgetVar="wdgId_state">
<f:selectItem itemValue="0" itemLabel="Open"/>
<f:selectItem itemValue="3" itemLabel="Close"/>
</p:selectOneMenu>
问题是,如果我在服务器端更改 myObject.id_state 值,当页面重新加载时,它会取回其旧值。 我尝试在没有运气按下按钮时禁用 wdgId_state。
那么,我该怎么做才能在服务器端将 selectOneMenu 值设置为不同的值?
【问题讨论】:
-
如果您的代码在每次重新加载页面 (RequestScope) 时都会生成
myObject.id_state对象,那么您在单击按钮后会丢失新值。也许您必须将 bean 的范围更改为 ViewScope 甚至 SessionScope。 -
不要使用
onchange="this.form.submit()",而是使用p:ajax
标签: jsf primefaces