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

Xpages 如何将NotresXspViewEntry作为ViewEntry传递到Java类中,xpages,Xpages,在重复中,我从一个视图中显示了一些文档;视图数据源通过传递在页面的xp:view级别定义的数据源绑定到repeat。重复定义了一个名为“rowEntry”的NotesXspViewEntry对象(“集合名称”) 现在我需要对repeat中显示的文档数据执行一些简单的操作;其中一项任务是找出条目在视图中的当前位置,然后找出当前条目的相邻同级 我试着勇敢一点,并以java类的形式编写代码,但在第一次可能的情况下遇到了一个问题: 我的类构造函数如下所示: public EntrySorter(View

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

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

我试着勇敢一点,并以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对象之前必须对其进行某种操作?

查看API,您似乎可以调用rowEntry.getViewEntry()来获取Java viewEntry对象

NotesXSPViewEntry的API:

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

听起来很有希望,但是尝试使用一个ID方法,我被告知它不可见,并且我不能使用它(我试着将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中无法访问它。您的解决方案可能是最好的解决方案。