Liferay 根据全局标记的用户角色,AssetTagServiceUtil.gettagscont()返回不同的计数值

Liferay 根据全局标记的用户角色,AssetTagServiceUtil.gettagscont()返回不同的计数值,liferay,liferay-6,Liferay,Liferay 6,我已经创建了一个插件portlet,它是可作用域和实例的 <?xml version="1.0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd"> <liferay-portlet-app> <port

我已经创建了一个插件portlet,它是可作用域和实例的

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">

<liferay-portlet-app>

    <portlet>
        <portlet-name>testassettagutilportlet</portlet-name>
        <icon>/icon.png</icon>
        <instanceable>true</instanceable>
        <scopeable>true</scopeable>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>
            /js/main.js
        </footer-portlet-javascript>
        <css-class-wrapper>
            testassettagutilportlet-portlet
        </css-class-wrapper>
    </portlet>
    <role-mapper>
        <role-name>administrator</role-name>
        <role-link>Administrator</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>guest</role-name>
        <role-link>Guest</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>
因为我必须在全局范围内获取与类似于资产的博客相关的标记,所以我将插件portlet设置为可作用域,以便将scopeGroupId传递给AssetTagServiceUtil.getTagsCount方法

我能够根据范围获取标记。但对于全局范围,计数值因角色而异

当我打电话时

AssetTagServiceUtil.getTagsCountscopeGroupId、classNameId、标记名 然后根据用户的角色返回不同的计数

例如,假设我在全局范围内有一个blogportlet,标记为testglobaltag,然后在上面调用

AssetTagServiceUtil.GetTagScopeScopeGroupId,10007,testglobaltag

对于管理员用户,返回计数1;对于其余用户,返回计数2。i、 e实际计数的两倍

注意:10007是博客的classNameId

下面是我的liferay-portlet.xml条目,用于使我的portlet可作用域和实例化

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">

<liferay-portlet-app>

    <portlet>
        <portlet-name>testassettagutilportlet</portlet-name>
        <icon>/icon.png</icon>
        <instanceable>true</instanceable>
        <scopeable>true</scopeable>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>
            /js/main.js
        </footer-portlet-javascript>
        <css-class-wrapper>
            testassettagutilportlet-portlet
        </css-class-wrapper>
    </portlet>
    <role-mapper>
        <role-name>administrator</role-name>
        <role-link>Administrator</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>guest</role-name>
        <role-link>Guest</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>
和simple view.jsp

<%@page import="com.liferay.portlet.asset.service.AssetTagServiceUtil"%>

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<liferay-theme:defineObjects/>
=========================Testing AssetTagServiceUtil==========================<br>

AssetTag with tag "testglobaltag" count : <%= AssetTagServiceUtil.getTagsCount(scopeGroupId, 10007, "testglobaltag") %><br>
我无法确切地理解为什么它显示出不同,即是管理员以外角色的实际计数的两倍

感谢您的帮助

谢谢