我有一个JSF页面,如果在SelectOneMenu中选择了某个值,则会渲染一些组件。为此,我更改了rendered
值并致电RequestContext.getCurrentInstance().update("@form")
。
从客户端的角度来看,每当我选择值时,我都会从服务器获得响应:
<update id="mainForm:addUser:menu_14:menu">
<...some updated values...>
</update>
然而,标识为mainForm:addUser:menu_14:menu
的元素未更新。
谁能告诉我有什么问题?
更新
我可以使用update="@form"
添加commandButton,按下此按钮实际上会根据需要重绘表单。但我需要从支持bean做到这一点,所以...
答案 0 :(得分:2)
来自文档:
public abstract void update(String name)
使用ajax更新组件。
name - 组件的客户端标识符。
因此,您不能像xhtml
文件那样使用选择器,您必须提供组件的客户端ID。
RequestContext.getCurrentInstance().update("mainForm")
答案 1 :(得分:0)
您使用的是Primefaces
吗?您应该将客户端ID传递给RequestContext.update
方法。 @form
无效。试试update(mainForm)
。