【问题标题】:RequestContext sends response but the page doesn't changeRequestContext 发送响应但页面没有改变
【发布时间】:2015-12-29 19:13:48
【问题描述】:

我有一个 JSF 页面,如果在 SelectOneMenu 中选择了某个值,则会呈现一些组件。为此,我更改了他们的rendered 值并调用RequestContext.getCurrentInstance().update("@form")

从客户端的角度来看,每当我选择值时,我都会收到来自服务器的响应:

<update id="mainForm:addUser:menu_14:menu">
<...some updated values...>
</update>

然而,id 为mainForm:addUser:menu_14:menu 的元素没有更新。

谁能告诉我有什么问题?

更新 我可以用update="@form" 添加commandButton,按下这个按钮实际上会根据需要重新绘制表单。但我需要从支持 bean 执行此操作,所以...

【问题讨论】:

  • 通常从 Facelets 页面做这些事情会更容易,而不是从 backing bean。我还没有遇到我“需要”从支持 bean 更新的实例。
  • @DavidS:我有......但那些是正在开发一种框架的情况
  • @DavidS:确实是这样——我们有一个框架可以从 XML 文件创建 JSF 页面,所以我无权访问页面源

标签: jsf primefaces requestcontext


【解决方案1】:

来自文档:

公共抽象无效更新(字符串名称)

使用 ajax 更新组件。

name - 组件的客户端标识符。

因此,您不能像在 xhtml 文件中那样使用选择器,您必须提供组件的客户端 ID。

RequestContext.getCurrentInstance().update("mainForm")

【讨论】:

    【解决方案2】:

    你在使用Primefaces吗?您应该将客户端 ID 传递给 RequestContext.update 方法。 @form 不起作用。试试update(mainForm)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多