我有一个Xpage,当用户选择组合框中的值(onChange事件)时执行部分刷新.组合框实际上是自定义视图组件的过滤器选择器.此事件触发一些SSJS代码并执行部分刷新.此事件偶尔会中断,可能是因为删除了XPages会话.执行部分刷新,但不再执行设置viewScope变量的SSJS代码.这导致视图显示未应用过滤器的所有数据.
我添加了一个print语句作为ssjs函数的第一行.此打印语句不再执行.
我设法通过打开页面重新启动http来重现这一点.
查看Chrome devtools中的网络选项卡会在partialRefreshPost上显示状态200.此外,partialrefresh id似乎是正确的.
任何解释?
如果会话超时,服务器重新启动和/或应用程序重建,则会发生这种情况.
如果然后将部分刷新发布到服务器,则它就像基于HTTP GET的请求:当前XPage的持久视图"再次被唤醒",但跳过了一些JSF生命周期阶段(3,4,5).部分刷新的SSJS代码在跳过的阶段执行,这就是您的控制台上没有打印输出的原因.
[这是一个非常简短的解释.有关更多信息,请查看有关JSF生命周期的XPages主类视频及其详细信息]
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |