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