【发布时间】:2011-11-18 11:31:17
【问题描述】:
我有一个 JSF/IceFaces 应用程序,其中有一个屏幕分为 3 个部分。搜索字段、网格和下面的一些详细信息字段。目前,如果我在搜索字段中输入一些数据并单击“搜索”按钮 (!),网格会显示结果并调用某个方法,将第一个结果记录的详细信息放入网格下方详细信息字段的支持 bean。这说明我将数据放入详细信息字段的方式没有问题。
但是,我也有一个 gridclicklistener 方法,它想根据选择更改详细信息字段。单击后,使用正确的参数调用相同的方法,如果在单击“搜索”按钮后调用该方法效果很好。数据在支持 bean 中更新,但即使我单击浏览器中的刷新按钮,更改也不会呈现。
我发现如果我点击搜索按钮,就会从InvokeApplicationPhase.execute 调用数据更新方法。当我点击网格后到达这条线时,它来自ApplyRequestValuesPhase。
您是否有任何想法可以产生这种影响以及如何完成这项工作?
更新:
我可以清楚地看到 backing bean 中的更新值,但它根本没有反映在屏幕上,即使在 F5 之后也是如此。
【问题讨论】:
-
我不太了解这篇文章,但您必须确保/调试您的模型已更新。
-
模型肯定更新了,我通过调试检查过
-
显然有 2 个 HTTP 请求正在发送。使用 Firebug/Chrome 等 HTTP 跟踪器验证这一点。
-
用 Firebug 检查过,但是点击网格后,只发送了一个 HTTP 请求。
-
当我单击“搜索”按钮时会发送一个 HTTP 请求,并且字段值会很好地更新。当我点击网格并且字段值没有更新时,发送了一个 HTTP 请求。