如何在XYZServiceImpl中获取themedisplay对象?

时间:2015-08-19 05:59:10

标签: java web-services liferay

如何在XYZServiceImpl中获取themedisplay对象? 我的场景就像我试图使用Web服务获取所有文档,但我需要使用哪个用户可以下载文档的每个文档的WebDAV URL。

我已经做了一些谷歌搜索,我发现以下方法提供webdav和缩略图,但为此我需要themedisplay对象。

1。) DLUtil.getWebDavURL(themeDisplay,folder,fileEntry);

2。) DLUtil.getThumbnailSrc(fileEntry,dlFileShortcut,themeDisplay)

此外,我需要检查每个文件夹和文档的权限,以获取权限检查器对象,我需要themedisplay对象。

任何人都可以帮助我尽快摆脱这个或任何替代解决方案来获得这个对象吗?

1 个答案:

答案 0 :(得分:0)

在API调用中获取themeDisplay的唯一(可维护)方法是将其作为接口的参数。一般来说,这是一个坏习惯,因为themeDisplay包含来自前端层的很多东西,通常你的服务应该与前层很好地分离。事实上,在纯API调用中,它们可能是从没有themeDisplay的上下文中调用的。

因此,您指向的方法可以在ThemeDisplay可用的地方使用,但如果他们只需要必要的细节而不需要大量的themeDisplay信息,我会更喜欢它们。另一方面,这将使4 instead of 1参数

如果您构建服务,则不应将themeDisplay作为参数。这可能说起来容易做起来难 - 它会为你做更多工作,但提供更清晰的代码。另一方面,您可能必须复制我上面链接的方法。没有"正确"在这种情况下解决问题的方法,你必须自己判断

编辑:回复您的评论:您无法在通过API进入的通话中获取themeDisplay - 它不在那里。现在,如果你真的需要它,并且没有方式:看看你要调用的方法的实际实现(我和#39; ve方便地链接在上面)并创建&使用您要调用的方法所需的数据初始化ThemeDisplay对象。并且永远记住,这是一种解决方法,不要经常这样做