RequestContext 发送响应但页面没有改变
RequestContext sends response but the page doesn't change
我有一个 JSF 页面,如果在 SelectOneMenu 中 selected 了某个值,就会呈现一些组件。为此,我更改了它们的 rendered
值并调用 RequestContext.getCurrentInstance().update("@form")
。
从客户端的角度来看,每当我 select 值时,我都会从服务器收到响应:
<update id="mainForm:addUser:menu_14:menu">
<...some updated values...>
</update>
然而,id 为 mainForm:addUser:menu_14:menu
的元素没有更新。
谁能告诉我哪里出了问题?
更新
我可以用 update="@form"
添加 commandButton,按下这个按钮实际上会根据需要重绘表单。但是我需要从支持 bean 执行此操作,所以...
您在使用 Primefaces
吗?您应该将客户端 ID 传递给 RequestContext.update
方法。 @form
将不起作用。试试 update(mainForm)
.
来自文档:
public abstract void update(String name)
Update a component with ajax.
name - Client side identifier of the component.
所以您不能像在 xhtml
文件中那样使用选择器,您必须提供组件的客户端 ID。
RequestContext.getCurrentInstance().update("mainForm")
- How to programmatically ajax-update specific component in backing bean
我有一个 JSF 页面,如果在 SelectOneMenu 中 selected 了某个值,就会呈现一些组件。为此,我更改了它们的 rendered
值并调用 RequestContext.getCurrentInstance().update("@form")
。
从客户端的角度来看,每当我 select 值时,我都会从服务器收到响应:
<update id="mainForm:addUser:menu_14:menu">
<...some updated values...>
</update>
然而,id 为 mainForm:addUser:menu_14:menu
的元素没有更新。
谁能告诉我哪里出了问题?
更新
我可以用 update="@form"
添加 commandButton,按下这个按钮实际上会根据需要重绘表单。但是我需要从支持 bean 执行此操作,所以...
您在使用 Primefaces
吗?您应该将客户端 ID 传递给 RequestContext.update
方法。 @form
将不起作用。试试 update(mainForm)
.
来自文档:
public abstract void update(String name)
Update a component with ajax.
name - Client side identifier of the component.
所以您不能像在 xhtml
文件中那样使用选择器,您必须提供组件的客户端 ID。
RequestContext.getCurrentInstance().update("mainForm")
- How to programmatically ajax-update specific component in backing bean