Mobile 强制对象数据源重新实例化

Mobile 强制对象数据源重新实例化,mobile,xpages,Mobile,Xpages,我使用的是XPages移动控件,其对象数据源(Java类不是托管bean)绑定到第二个应用程序页面上的查看范围。我已将第二页上的内容重置为true。因此,我假设每次转换到第二个页面时,对象数据源都会被销毁并重新创建 当我第一次转换到第二个页面时,createObject()方法将按预期调用。如果我使用按钮转换到第二页,并将forcellrefresh设置为true,则会调用createObject()方法。但是,如果我有一个为第二页指定了moveTo的圆形列表项,则不会调用createObjec

我使用的是XPages移动控件,其对象数据源(Java类不是托管bean)绑定到第二个应用程序页面上的查看范围。我已将第二页上的内容重置为true。因此,我假设每次转换到第二个页面时,对象数据源都会被销毁并重新创建

当我第一次转换到第二个页面时,createObject()方法将按预期调用。如果我使用按钮转换到第二页,并将forcellrefresh设置为true,则会调用createObject()方法。但是,如果我有一个为第二页指定了moveTo的圆形列表项,则不会调用createObject()方法。相反,对象将保持设置为上次访问该应用程序页时使用的最后一个值


有没有办法在每次转换到页面时强制调用createObject()方法?

解决方案是将对象数据源从视图范围移动到请求范围。这是可能的,因为在详细信息准备好提交之前,我不需要在该页面上进行任何部分刷新。

解决方案是将对象数据源从视图范围移动到请求范围。这是可能的,因为在详细信息准备好提交之前,我不需要在该页面上进行任何部分刷新。

另一种方法是在SSJS中调用数据源的刷新方法。 假设页面上只有一个数据源,则可以从以下视图访问ObjectDataSource:

var ods:com.ibm.xsp.extlib.model.ObjectDataSource = view.getData().get(0);
ods.refresh()

这将执行createObject方法绑定并重新实例化数据源。

另一种方法是在SSJS中调用数据源的刷新方法。 假设页面上只有一个数据源,则可以从以下视图访问ObjectDataSource:

var ods:com.ibm.xsp.extlib.model.ObjectDataSource = view.getData().get(0);
ods.refresh()

这将执行createObject方法绑定并重新实例化数据源。

“每次我转换到页面”-您的页面是移动应用程序中移动页面的一部分-表示相同的XPage,还是使用两个不同的XPage?我使用的是XPages移动控件。。i、 这些是单页应用程序中的应用程序页。也就是说,viewscope保留您的对象。您应该切换到请求范围或在某个事件上删除该对象。脚本“variable=null”应该可以。“每次我转换到页面时”-您的页面是移动应用程序中移动页面的一部分-表示相同的XPage,还是使用两个不同的XPage?我使用的是XPages移动控件。。i、 这些是单页应用程序中的应用程序页。也就是说,viewscope保留您的对象。您应该切换到请求范围或在某个事件上删除该对象。脚本“variable=null”应该可以。