如何将NotresXspViewEntry作为ViewEntry传递到Java类中

时间:2014-04-04 16:33:15

标签: xpages

重复一遍,我从一个视图中展示了一些文件;视图数据源通过传递在页面的xp:view级别定义的数据源绑定到repeat。 repeat定义了一个名为“rowEntry”的NotesXspViewEntry对象(“Collection name”)。

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

我试图勇敢并将我的代码编写为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对象之前对其进行某种操作?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查看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