我有一个DocsByUsername分类视图,按用户名排序和分类。对于经过身份验证的用户,我只想在Dojo数据网格中显示其文档。网格需要支持网格编辑,所以我需要使用xe:viewFileItemService读/写服务作为网格的数据源。
我认为使用以下服务配置会相当直接......
<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?
答案 0 :(得分:5)
使用参数keys
代替categoryFilter
。这样可以返回用户名类别的所有文档。
... keys="#{sessionScope.username}">
史蒂夫·扎沃基(Steve Zavocki)前一段时间对这个问题有一个blog。
答案 1 :(得分:2)
keys
摆脱空行的方法。
我所做的是回到categoryFilter
并将此代码放入其中:
var category:String = lineItemBean.getThisUNID();
if(category == null){
return "show nothing"
} else {
return lineItemBean.getThisUNID();
}
lineItemBean是绑定到会话的托管bean。 getThisUNID()是存储为String的父UNID的简单getter。子记录由该UNID与父母相关联。该视图按此分类。如果它找不到父UNID,它将搜索类别&#34;什么都不显示&#34;当然它从未找到,否则返回文件。在我这样做之前,它会在这种情况下显示所有文档(非常糟糕)。
我的休息服务是xe:viewJsonService
类型。仅供参考,此网格也设置为允许行编辑。此外,它不应该有所作为,但数据存储在与设计不同的数据库中。希望这会有所帮助。