java - Oracle ADF 选择多行时,RowSetIterator 在第一次方法调用时不会填充

标签 java javabeans oracle-adf

不确定如何最好地表达标题,但要点如下。

目标是检索表中所有选定的行并操作它们。我遇到的问题是,第一次调用支持 bean 中的方法时,RowSetIterator 不会被填充。当第二次调用时,它确实会被填充。

如何让它在第一次调用时正常工作?

毫无疑问,我不是很清楚,如果您需要任何其他信息,请告诉我。这是 bean 方法的片段:

  public String deleteSelectedQueries()
  {
    JSFUtils.addInformationMessage("Delete");
    RowKeySet selectedQueries =
      getSavedQueriesByUserTable().getSelectedRowKeys();
    Iterator selectedQueriesIter = selectedQueries.iterator();
    DCBindingContainer bindings =
      (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding savedQueriesByUserIter =
      bindings.findIteratorBinding("SavedQueriesByUserROVOIterator");
    RowSetIterator savedQueriesByUserRowSetIterator =
      savedQueriesByUserIter.getRowSetIterator();
    while (selectedQueriesIter.hasNext())
    {
      Key key = (Key) ((List) selectedQueriesIter.next()).get(0);
      Row currentRow = savedQueriesByUserRowSetIterator.getRow(key);
      System.out.println(currentRow.getAttribute("QueryName"));
    }
    return null;
  }
}

有什么想法吗?

谢谢!

最佳答案

这段代码对我来说看起来不错。

问题可能来自<af:table>标签,请确保已删除这些标签:

selectedRowKeys="#{bindings.SavedQueriesByUserROVO.collectionModel.selectedRow}"
selectionListener="#{bindings.SavedQueriesByUserROVO.collectionModel.makeCurrent}"

关于java - Oracle ADF 选择多行时,RowSetIterator 在第一次方法调用时不会填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910048/

相关文章:

java - 使动态创建的 AttributeDefImpl 在填充后只读

javascript - 如何使用脚本执行自动单击jsf中的命令按钮

java - java中处理多个异常

java - 使用共享首选项保存 boolean 值数组

java - 使用 Curl 命令使用 Jersey、Jackson 和 json.org/java Parser 进行 JSON 格式化

java - 有没有办法在Javadoc中引用bean的属性(getter和setter)?

java - 如何在 Play 框架的索引页面上加载示例 html 页面?

java - 在 JOOQ 中,如果我直接使用底层连接,我的事务状态是否保持?

java - 一种在 Spring 应用程序中创建和销毁 Prototype-beans 期间跟踪内存情况的方法?

css - 在 Chrome 与 IE 中运行 ADF 应用程序