当前位置: 首页 > 知识库问答 >
问题:

未显示portlet时发生liferay错误

连昊天
2023-03-14
  1. 创建的工作区

我读到我可以使用CountryLocalService、@Reference等。?这个代码可以吗?我可以看到我的portlet是活动的,但它并没有显示在示例小部件中。能否提供代码,以便使用CountryLocalService调用getCountriesCount()?

  @Component(
        immediate = true,
        property = {
            "com.liferay.portlet.display-category=category.sample",
            "com.liferay.portlet.instanceable=true",
            "javax.portlet.init-param.template-path=/",
            "javax.portlet.init-param.view-template=/view.jsp",
            "javax.portlet.name=" + DemoPortletKeys.Demo,
            "javax.portlet.resource-bundle=content.Language",
            "javax.portlet.security-role-ref=power-user,user"
        },
        service = Portlet.class
    )
    public class DemoPortlet extends MVCPortlet {

        private CountryLocalService countryLocalService;


        @Override
        public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
                throws IOException, PortletException {
            // TODO Auto-generated method stub

            System.out.println("********" + getCountryLocalService().getCountriesCount() + " ********************");

            super.doView(renderRequest, renderResponse);
        }

        public CountryLocalService getCountryLocalService() {
            return countryLocalService;
            }

        @Reference(unbind = "-")
        public void setCountryLocalService(CountryLocalService countryLocalService) {
        this.countryLocalService = countryLocalService;
        }
    }

共有1个答案

蒋华美
2023-03-14

您没有指定使用的Liferay的确切版本,很明显它是7.0或7.1。在当前的代码库中,我没有看到任何CountryLocalService,但有一个com。liferay。门户网站。内核服务CountryService。

下面的代码(与您的代码几乎相同)适用于我在Liferay DXP 7.0上部署的portlet,出现在示例类别中,并且是从Liferay Developer Studio中的mvc portlet模板开始创建的。我编辑过的唯一文件就是这里显示的文件。

package com.example.country.portlet.portlet;

import com.example.country.portlet.constants.CountryPortletKeys;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;
import com.liferay.portal.kernel.service.CountryService;

import java.io.IOException;

import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component(
    immediate = true,
    property = {
        "com.liferay.portlet.display-category=category.sample",
        "com.liferay.portlet.instanceable=true",
        "javax.portlet.display-name=countryportlet Portlet",
        "javax.portlet.init-param.template-path=/",
        "javax.portlet.init-param.view-template=/view.jsp",
        "javax.portlet.name=" + CountryPortletKeys.Country,
        "javax.portlet.resource-bundle=content.Language",
        "javax.portlet.security-role-ref=power-user,user"
    },
    service = Portlet.class
)
public class CountryPortlet extends MVCPortlet {
    private CountryService countryService;

    @Override
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
            throws IOException, PortletException {
        System.out.println("************* " + countryService.getCountries().size() + " ***************");
        super.doView(renderRequest, renderResponse);
    }

    @Reference
    public void setCountryService(CountryService cs) {
        this.countryService = cs;
    }
}
 类似资料:
  • 首先,我对Liferay非常陌生,即使在阅读了这些文档之后,我可能也不知道自己在做什么。 我正在尝试在Liferay portlet中设置一个自定义jsp页面。我的jsp结构如下: 这些都放在我的portlet视图中。然而,我在我的portlet中看不到任何显示。我的所有源代码和映射都是正确的,但似乎我只能在portlet中显示常规文本。 我正在使用Liferay插件SDK和Eclipse的最新版

  • 我使用Liferay portlet bundle 6.2(Tomcat)和Liferay IDE(eclipse)。我创建了两个Liferay插件项目。在第一个portlet(第一个插件portlet)中,我使用portlet首选项保存了一些数据。现在,我将在第一个portlet中显示第二个portlet。我怎么能做到?我找到了下面的代码和这个链接 从其他portlet打开portlet 但是,

  • 有没有办法为我在控制面板中创建的组织创建portlet? 肯定是这样的 我创建了组织层次结构,并使每件事都成为用户角色...等等 这可以通过钩子或什么来完成,请帮帮我?! 这个我已经试过了

  • 我正在尝试允许Liferay的管理员配置Portlet。我已经创建了配置页面和配置操作。 问题是:我可以保存配置并且portlet正确使用此配置,但是当我在配置中再次输入时,我无法获取此值。 somePreferenceKey_cfg是空的。 有人知道我能做什么吗?谢谢,伊万。

  • 我想问你一个问题。我使用Liferay 6.2。我有一个自定义portlet,它嵌入在我的自定义主题中 下面是Liferay portlet的一些设置。xml 在portlet控制器呈现方法中,我设置了portlet首选项(我想使我的portlet无边界) 但当我检查Liferay和我的自定义嵌入portlet边框时,会发现。但PORTLETPREFERENCE表有一行,下面是首选项,ID根据li

  • 有人能指出Liferay 6.2版中使用Hooks的“如何自定义日历portlet”吗? 问题是,日历jsp文件没有显示在liferay-hook.xml配置文件中的Customizable jsp列表中。 我想做的就是在Liferay门户6.2中的现有日历portlet中添加一些新按钮、更改标签并添加一些新操作。 有人能让我知道这必须一步一步地完成吗?