You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7 JSONWS API中DLFileEntry的obc参数正确用法咨询

解决Liferay JSON Web Service中OrderByComparator参数的传递问题

我来帮你解决这个在调用DLFileEntry相关Web服务时遇到的OrderByComparator参数传递问题——之前我也踩过类似的坑,下面给你详细说明正确的处理方式:

正确的参数传递格式

Liferay的JSON Web Service对OrderByComparator类型的参数有特定的格式要求,不能直接传null、数值或者带加号的类名,正确的格式是:

obc=className:fully.qualified.class.name[:sortDirection]
  • fully.qualified.class.name:必须是Liferay官方提供的合法OrderByComparator实现类的完整包路径+类名,比如针对文档库文件的排序类有:
    • com.liferay.portlet.documentlibrary.util.comparator.FileEntryNameComparator(按文件名排序)
    • com.liferay.portlet.documentlibrary.util.comparator.FileEntryCreateDateComparator(按创建时间排序)
  • sortDirection(可选):部分Comparator支持传入布尔值指定排序方向,true表示升序,false表示降序,不需要的话可以省略。

你的错误原因分析

  • 传null:部分Web服务方法可能不允许该参数为null,需要明确指定排序器;
  • 传0:类型完全不匹配,OrderByComparator是对象类型,不能用数值替代;
  • 传+obc:xxx:多余的加号是错误格式,不需要前缀,直接用obc=xxx的形式传递。

示例用法

比如你要调用DLFileEntry的列表接口,按文件名升序排序,参数应该这样传:

obc=className:com.liferay.portlet.documentlibrary.util.comparator.FileEntryNameComparator:true

如果要按创建时间降序排序,就用:

obc=className:com.liferay.portlet.documentlibrary.util.comparator.FileEntryCreateDateComparator:false

额外提示

你可以在http://localhost:8080/api/jsonws的Web服务门户里,找到对应的DLFileEntry方法,查看参数的详细说明,部分方法会列出支持的OrderByComparator实现类;也可以参考Liferay的API文档确认哪些类是合法的排序器实现。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:22:30