【问题标题】:Oracle ADF: Refresh Form dataOracle ADF:刷新表单数据
【发布时间】:2015-04-08 01:39:23
【问题描述】:

我正在使用 Oracle ADF 开发一个 Web 应用程序。我有一个有界的任务流。我有一个如下所示的搜索页面。

我已经使用视图对象数据控件创建了上述两个表单。

搜索性能良好。但我的问题是,当我使用左侧提供的菜单在应用程序的其他位置返回搜索页面时,页面没有刷新。我得到一个包含旧搜索结果的搜索页面。此时,如果我尝试进行任何更改,则会收到一些错误,称为 “具有此 ID 的另一个用户已经修改了数据 ....”。在此错误之后,我的应用程序没有运行。意味着曾经试图做的事情显示相同的错误。

所以我需要这样:“当用户来到这个表单时,他应该得到新的表单。它不应该包含旧的搜索结果。

请帮助我。我如何做到这一点。

谢谢。

【问题讨论】:

  • 始终提及您的 JDeveloper 版本,以便每个人都知道您使用的是哪个 ADF 版本。
  • 谢谢。我正在使用 jdeveloper 11.1.2.4

标签: oracle-adf jdeveloper


【解决方案1】:

有两种方法:

1) 将您的任务流设置为隔离,从任务流概览选项卡 -> 行为 -> 与调用任务流共享数据控制 -> 未选中(或隔离,如果您使用的是 JDev 12c)

这将确保您在访问页面时始终启动 FRESH,但它可能会产生性能开销,因为将在页面加载时重新创建(请求)整个视图对象缓存。不过,这是最快的解决方案。

2) 您可以在任务流中创建一个默认的方法调用活动,从中可以调用 AM 的自定义方法来重置视图标准。该方法将放置在应用程序模块的实现类中,它可能如下所示:

public void initTaskFlow() {
   this.getViewObject1().executeEmptyRowSet();
}

这将清理结果数据。如果你也想重置查询参数,你可以使用这个例子:

http://www.jobinesh.com/2011/04/programmatically-resetting-and-search.html

【讨论】:

  • 感谢您的宝贵时间。我已经检查了您的第一个解决方案。但是在我的有界任务流中已经有了相同的内容。在交易下,我总是开始新的交易。并且未选中与调用任务流共享数据控制。让我试试第二种解决方案。
  • 第一个解决方案不起作用的事实是不正常的,这意味着我们错过了一些东西......我唯一能想到的可能是会话范围内有一个支持 bean,持有 af 的绑定:table 和 af:query 组件...
【解决方案2】:

当您对任何 viewObject 进行任何更改然后执行此 viewObject 以匹配实体状态和 viewState 时,我认为执行 viewObject 将解决您的问题

阿什

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2023-03-23
    相关资源
    最近更新 更多