【问题标题】:How to pass a NotresXspViewEntry as a ViewEntry into a Java class如何将 NotresXspViewEntry 作为 ViewEntry 传递给 Java 类
【发布时间】:2014-04-05 18:24:54
【问题描述】:

在重复中,我从一个视图中显示了一些文档;通过传递在页面的 xp:view 级别定义的数据源,视图数据源被绑定到重复。重复定义了一个名为“rowEntry”的 NotesXspViewEntry 对象(“集合名称”)。

现在我需要对重复中显示的文档数据执行一些简单的操作;其中一项任务是找出条目在视图中的当前位置,然后找出我当前条目的相邻兄弟。

我试图勇敢地把我的代码写成一个 java 类,但在第一次可能的情况下就遇到了问题:

我的类构造函数如下所示:

public EntrySorter(ViewEntry veThis){
    this.veThis = veThis;
}

我的 SSJS 代码是这样的:

var es = EntrySorter(rowEntry);

显然 veThis 是正确的对象,因为

System.out.println("DEBUG: NoteID = " + veThis.getNoteID());

正在返回正确的 NoteID。但是询问条目的位置返回null

System.out.println("DEBUG: position in view = " + veThis.getPosition('.'));

尝试直接使用 SSJS 做同样的事情效果很好。这里返回正确的位置,例如在计算域内:

rowEntry.getPosition('.');

veThis.getParent() 也没有像在 SSJS 中那样返回 ViewNavigator 对象。

问题是:这是无法按照我的想法完成的事情,还是我必须在将 viewEntry 对象传递给 Java 对象之前对其进行某种操作?

【问题讨论】:

    标签: xpages


    【解决方案1】:

    好的,现在我通过从XspViewEntry 中取出NotesDocument 对象,然后将文档传递给我的java 代码,然后使用nav.gotoEntry(doc); 将ViewNav 指针移动到正确的条目来解决这个问题这似乎现在正在工作;问题仍然存在:真的没有办法从封装的 XSP 版本中获取“真正的” ViewEntry 对象吗?

    【讨论】:

      【解决方案2】:

      看API,好像可以调用rowEntry.getViewEntry()来获取java ViewEntry对象。

      NotesXSPViewEntry 的 API: http://public.dhe.ibm.com/software/dw/lotus/Domino-Designer/JavaDocs/XPagesExtAPI/8.5.2/com/ibm/xsp/model/domino/wrapped/DominoViewEntry.html

      【讨论】:

      • 听起来很有希望,但是尝试使用siad 方法时我被告知它不可见,并且我无法使用它(我尝试将 rowEntry 作为 DominoViewEntry 和 AbstractDominoViewEntry 传递);说到Java,我只是一个初学者,所以这可能不是一个真正的问题,但不幸的是它对我来说......
      • 更新我之前的评论:尝试在 SSJS 端而不是 Java 端执行 getViewEntry();这对 SSJS 端会导致显式运行时错误:“[TypeError] 在类型为'NotesXspViewEntry [Static Java Wrapper, com.ibm.xsp.model.domino.wrapped.AbstractDominoViewEntry] 的对象上调用方法'getViewEntry()' 时出错” '";看起来好像没有正确的方法来使用该方法,或者是吗?
      • 是的..对不起。我重新阅读了 API,现在我看到 getViewEntry 在父类中受到保护,因此在没有 Java 反射技巧/减少 JVM 安全限制的情况下,在 DominoViewEntry 中无法访问它。您的解决方法可能是最好的解决方法。
      猜你喜欢
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2012-03-30
      • 2020-05-11
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多