如何在 XPage 上配置 xe:viewFileItemService 以过滤分类视图中的数据?
How to configure an xe:viewFileItemService on an XPage to filter the data in a categorized view?
我有一个 DocsByUsername 分类视图,按用户名排序和分类。对于经过身份验证的用户,我只想在 Dojo 数据网格中显示他们的文档。网格需要支持网格内编辑,所以我需要使用 xe:viewFileItemService read/write 服务作为网格的数据源。
我认为使用以下服务配置会相当简单...
<xe:restService id="restService1" jsId="restServiceObj"
pathInfo="pathinfo">
<xe:this.service>
<xe:viewItemFileService
viewName="DocsByUsername" var="rsEntry"
contentType="application/json" defaultColumns="true"
sortColumn="Username" categoryFilter="#{sessionScope.username}">
</xe:viewItemFileService>
</xe:this.service>
</xe:restService>
当我预览页面并将 /pathinfo 附加到 url 以测试服务时,返回以下错误...
{
"code":500,
"text":"Internal Error",
"message":"",
"type":"text",
"data":"java.lang.NullPointerException\r\n\tat
... removed for space ...
}
如果我从 xe:viewFileItemService 切换到 xe:viewJsonService,数据会正确无误地返回。
我可以不为 xe:viewFileItemService 指定分类视图吗?
使用参数 keys
而不是 categoryFilter
。这会返回用户名类别的所有文档。
... keys="#{sessionScope.username}">
Steve Zavocki 不久前blog 讨论过这个问题。
Paul,我刚刚找到了那个数据库,这就是我所做的。尽管尝试了所有方法,但我找不到使用 keys
.
摆脱空白行的方法
我所做的是回到 categoryFilter
并将此代码放入其中:
var category:String = lineItemBean.getThisUNID();
if(category == null){
return "show nothing"
} else {
return lineItemBean.getThisUNID();
}
lineItemBean 是绑定到会话的托管 bean。 getThisUNID() 是一个简单的 getter,用于存储为字符串的父 UNID。子记录通过此 UNID 绑定到父记录。视图按此分类。如果找不到父 UNID,它会搜索类别 "show nothing",当然它永远找不到,否则 return 文档。在我这样做之前,它会显示这种情况下的所有文档(非常糟糕)。
我的休息服务类型是xe:viewJsonService
。仅供参考,此网格还设置为允许行内编辑。此外,它应该没有什么区别,但数据存储在与设计不同的数据库中。希望这有帮助。
我有一个 DocsByUsername 分类视图,按用户名排序和分类。对于经过身份验证的用户,我只想在 Dojo 数据网格中显示他们的文档。网格需要支持网格内编辑,所以我需要使用 xe:viewFileItemService read/write 服务作为网格的数据源。
我认为使用以下服务配置会相当简单...
<xe:restService id="restService1" jsId="restServiceObj"
pathInfo="pathinfo">
<xe:this.service>
<xe:viewItemFileService
viewName="DocsByUsername" var="rsEntry"
contentType="application/json" defaultColumns="true"
sortColumn="Username" categoryFilter="#{sessionScope.username}">
</xe:viewItemFileService>
</xe:this.service>
</xe:restService>
当我预览页面并将 /pathinfo 附加到 url 以测试服务时,返回以下错误...
{
"code":500,
"text":"Internal Error",
"message":"",
"type":"text",
"data":"java.lang.NullPointerException\r\n\tat
... removed for space ...
}
如果我从 xe:viewFileItemService 切换到 xe:viewJsonService,数据会正确无误地返回。
我可以不为 xe:viewFileItemService 指定分类视图吗?
使用参数 keys
而不是 categoryFilter
。这会返回用户名类别的所有文档。
... keys="#{sessionScope.username}">
Steve Zavocki 不久前blog 讨论过这个问题。
Paul,我刚刚找到了那个数据库,这就是我所做的。尽管尝试了所有方法,但我找不到使用 keys
.
我所做的是回到 categoryFilter
并将此代码放入其中:
var category:String = lineItemBean.getThisUNID();
if(category == null){
return "show nothing"
} else {
return lineItemBean.getThisUNID();
}
lineItemBean 是绑定到会话的托管 bean。 getThisUNID() 是一个简单的 getter,用于存储为字符串的父 UNID。子记录通过此 UNID 绑定到父记录。视图按此分类。如果找不到父 UNID,它会搜索类别 "show nothing",当然它永远找不到,否则 return 文档。在我这样做之前,它会显示这种情况下的所有文档(非常糟糕)。
我的休息服务类型是xe:viewJsonService
。仅供参考,此网格还设置为允许行内编辑。此外,它应该没有什么区别,但数据存储在与设计不同的数据库中。希望这有帮助。