我正在向页面动态添加h:selectOneMenu
。但是,listener
的{{1}}方法并未针对selectItems调用,但如果从一开始就将f:ajax
添加到页面中(不是使用h:selectOneMenu
属性动态添加),它就会起作用。
我的代码如下:
(在@ Daniel的建议之后更正)
update
答案 0 :(得分:1)
h:commandButton
没有update
属性,看起来像素数混合和纯JSF(update
属性来自p:commandButton
)
将f:ajax
添加到commandButton
并使用render
属性
<h:commandButton value="Watch">
<f:ajax render="deptsSelBox"/>
<f:setPropertyActionListener value="#{true}" target="#{listRetriever.allow}" />
</h:commandButton>
还会将您的选择ajax修复为此
<f:ajax listener="#{listRetriever.retrieve}" update="deptsSel"/>
并尝试将范围从request
更改为view
另一种方法是在方法中设置allow
的值,如下所示(你也可以将它作为参数发送)
<h:commandButton value="Watch" action="listRetriever.updateAllow">
<f:ajax render="deptsSelBox"/>
</h:commandButton>
public void updateAllow(){
allow = true;
}