我正在尝试使用RESTservice从资源保留数据库中获取数据,并通过资源名称提供具有过滤功能的日历。 当我使用不带过滤器的其余服务时,一切运行正常
<xe:restService id="restService2" pathInfo="/inoteslegacyjson">
<xe:this.service>
<xe:viewJsonLegacyService count="30000"
databaseName="${compositeData.databaseName}"
viewName="${compositeData.viewName}" defaultColumns="false"
var="entry" contentType="text/plain" compact="false">
<xp:this.columns>
<!-- Cal Date -->
<xe:restViewColumn name="$134"
columnName="StartDateTime">
</xe:restViewColumn>
<!-- Icon -->
<xe:restViewColumn name="$149" columnName="$149"></xe:restViewColumn>
<!-- Start Date -->
<xe:restViewColumn name="$144"
columnName="StartDateTime">
</xe:restViewColumn>
...
但是当我输入这样的搜索语法时:
<xe:this.search><![CDATA[#{javascript:
var isResourceFiltered:Boolean;
var strTmp:String=viewScope.resourceName;
isResourceFiltered=(strTmp.compareToIgnoreCase("All")!=0);
print ("Is result filtered:" + isResourceFiltered + ", filter: "+ strTmp);
if (!isResourceFiltered) {
return "";
}
return "ResourceName=" + viewScope.resourceName}]]></xe:this.search>
我在控制台中看不到任何有关Print()的消息,并且在页面中出现一些错误:
calendarDataStore:RequestError:无法加载/admin/resource.nsf/ResourceCalendarFiltered.xsp/inoteslegacyjson状态:500
或错误400
如何过滤日历视图的资源名称 (以及如何制作一个时间片以仅获取UI中显示的时间段,以避免count =“ 30000”?)
答案 0 :(得分:2)
viewScope.resourceName
可能设置得不够早,无法使用。这可以解释缺少打印语句以及calendarDataStore返回的错误500。
尝试添加一些错误处理,以验证这是组件问题还是代码错误。
XPages OpenLog Logger(或OpenNTF Domino API中的相应代码)将捕获未捕获的异常,因此无需try / catch块即可验证编码问题。
答案 1 :(得分:1)
我提供了Java Rest服务,并使用FT搜索在两个日期范围之间进行搜索。您也可以按资源名称在FT搜索中进行搜索。就我而言,我没有使用视图,而是使用Java进行了查找,并在代码中构建了返回的文本(以与基于Web的日历FullCalendar一起使用)。效果很好,速度很快。