如何通过代码添加嵌套portlet(liferay)

2023-11-23

我们在 liferay 中有一个叫做嵌套 portlet 的东西。我想通过代码动态添加此 portlet。有谁知道添加嵌套 portlet 并在其中添加其他 portlet 的代码吗?

谢谢 !!!


对于完整的示例,我假设您想要使用另一个 portlet 操作处理程序将嵌套 portlet 添加到当前页面。 (如果在渲染操作中使用,则在页面的下一个视图之前您不会看到嵌套的 portlet)

将这些方法添加到您的代码中

private static String addPortlet(final long p_userId, final Layout p_layout, final String p_portletId, final String p_columnId, final int p_position, final boolean p_checkPermission)
                throws PortalException, SystemException
{
    if (p_layout.isTypePortlet()) {
        final LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) p_layout.getLayoutType();

        final String portletId = layoutTypePortlet.addPortletId(p_userId, p_portletId, p_columnId, p_position, p_checkPermission);
        if (portletId != null) {
            final String rootPortletId = PortletConstants.getRootPortletId(portletId);
            final String portletPrimaryKey = PortletPermissionUtil.getPrimaryKey(p_layout.getPlid(), portletId);
            ResourceLocalServiceUtil.addResources(p_layout.getCompanyId(), p_layout.getGroupId(), 0, rootPortletId, portletPrimaryKey, true, true, true);
            LayoutLocalServiceUtil.updateLayout(p_layout.getGroupId(), p_layout.isPrivateLayout(), p_layout.getLayoutId(), p_layout.getTypeSettings());
        }
        return portletId;
    }

    return null;
}

private static void addNestedPortlet(final PortletRequest p_request) throws PortalException, SystemException {
    final ThemeDisplay themeDisplay = (ThemeDisplay) p_request.getAttribute(WebKeys.THEME_DISPLAY);
    final Layout layout = themeDisplay.getLayout();
    long userId = themeDisplay.getUserId();

    //create nested portlet and add it to "column-1"
    final String nestedPortletId = addPortlet(userId, layout, "118", "column-1", -1, false);

    //this will be used to target nested portlet's columns
    final String nestedColumnPrefix = "_" + nestedPortletId + "__";

    //default page layout (used by nested portlet) has two columns
    //we'll add two portlets (in this example two iframe portlets), one portlet to each column
    addPortlet(userId, layout, "48", nestedColumnPrefix + "column-1", -1, false);
    addPortlet(userId, layout, "48", nestedColumnPrefix + "column-2", -1, false);
}


如果您愿意(而且可能愿意)将嵌套 portlet 添加到另一个页面或不从 portlet 添加嵌套 portlet,您可以查找 Layout 和 User,而不是从 ThemeDisplay 获取它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过代码添加嵌套portlet(liferay) 的相关文章

  • 如何在 Liferay 6 中以编程方式创建结构和模板

    我需要通过 java 代码以编程方式创建结构和模板 我使用了以下代码片段 结构 public void createStructure String userName long userId log info Inside create s
  • Liferay 搜索容器分页

    我在代码中使用了 liferay ui search container 搜索结果会正确显示 直到我单击 下一步 该 portlet 正在重新加载 这会将我带到该 portlet 的第一页 从而破坏了所显示的搜索结果 即使在 portlet
  • ext 插件在 liferay 6.1.2 jboss7 中不起作用

    我创建了一个外部插件用于扩展 Liferay LDAP默认门户到LDAP转换器 我在 eclipse 中创建了一个 ext 插件 在里面ext impl src main java com liferay portal security l
  • Liferay集群[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道有关在 Glassfish 中安装 Liferay 集群的分步教程吗 谷歌给我找到了这篇文章 名为
  • 修复翻译错误

    liferay 门户中有很多地方翻译成我的语言 sk SK 是错误的 是否可以用 hook 重写那些不好的翻译 任何其他想法都欢迎 多谢 是的 你可以做到 in your liferay hook xml文件添加要覆盖的语言文件的条目 就像
  • 在liferay搜索容器中显示来自自定义查询(连接表)的数据

    我已关注这个维基 http www liferay com community wiki wiki Main Custom queries in Liferay 5 2并已成功构建自定义查询 效果很好 我在表之间使用了联接 我的问题是如何使
  • 处理不是 Action 请求的 Multipart 请求?

    我一直在想是否可以处理不是操作请求的多部分请求 对我来说这似乎不可能是有原因的 只有 ActionRequest 实现 getFile 类方法 我不能 找到任何简单的方法来获取文件 出于除 Action 之外的请求 要求 如果我不使用 ht
  • 请讨论什么是 portlet 以及为什么使用 portlet

    为什么我要在 tomcat 和 gwt 之上使用 java portlet Portlet 是否会减少或不需要我使用 jsp 和 jsf Jboss 是否已成为 Portlet 演化文化的一部分 Jboss 是否满足 portlet jsr
  • Liferay:从 init() 获取 PortletID 和 companyID

    也许通过 init PortletConfig 中的 PortletConfig 问题是使用 PortletConfigImpl portletConfig getPortletId 不再允许 因为在 package properties
  • 如何使用 Liferay Tomcat 减少部署时间

    我使用 Liferay 6 并结合 Struts2 我正在使用 Liferay Bundled Tomcat 7 它工作正常 我的问题是 每当资源 portlet xml 或 java 文件 发生更改以及单击 build xml 时 部署都
  • Liferay:如何保存到portlet用户信息?

    我在欢迎页面上有一个天气 portlet 用户可以配置该 portlet 并选择他的城市 是否可以将用户信息存储在 portlet 首选项中 以便每个用户都有一个存储的城市 或者存储用户 portlet 信息而无需开发自己的 持久 服务的标
  • 在 Liferay 7 中创建自定义标签库

    我正在使用 Liferay 7 和 OSGi 模块编写一个应用程序 我需要创建一个跨所有模块 portlet 可用的自定义标签库 但我几乎不知道从哪里开始 你有什么主意吗 我应该将 taglib 定义 类和 JSP 存储在 OSGi 模块中
  • 到底什么是现场注入以及如何避免它?

    我在一些关于 Spring MVC 和 Portlet 的文章中读到场注入不推荐 据我了解 场注入是当你注入一个 Bean 时 Autowired像这样 Component public class MyComponent Autowire
  • Liferay 多对多关系引发类转换异常

    我正在创建一个示例来演示 liferay 中的关系 我正在以图书实体和作者的多对多关系为例 我将按照下面的博客创建此示例 http www liferaysavvy com 2014 01 liferay service builder m
  • 如何在 Eclipsce juno 中开发 Liferay 项目并在 Jboss 上构建它

    我已经下载了 Liferay 6 1 和 jboss 7 1 1 Bundle 以及 Liferay IDE Eclipsce Juno 我所要做的就是开发 Liferay 项目并在 Jboss 服务器上运行它 我可以在 localhost
  • jQuery UI 和分割器

    使用 jQuery UI 我如何使用类似 Splitter 的功能http methvin com splitter 3csplitter html http methvin com splitter 3csplitter html 我问这
  • 如何从 Liferay 速度模板获取服务器名称和服务器端口?

    在jsp页面中 我们可以使用以下命令获取服务器名称和服务器端口 request getServerName 和 request getServerPort 由于我们无法从Liferay速度模板获取HttpServletRequest 是否有
  • IntelliJ IDEA 中为 Tomcat 设置了哪个应用程序上下文?

    到目前为止 我在 Windows 命令中运行 Tomcat 服务器 v 7 0 26 catalina bat start脚本 如果我想部署我的 Web 应用程序 我必须通过 Maven 构建它并复制 WAR 到指定 Tomcat 部署目录
  • 如何使用基于 Spring MVC 注解的 Portlet 控制器通过 AJAX 呈现 JSON 视图/响应?

    在过去的六个小时里 我在 Google 和 stackoverflow 上搜索了这个问题的答案 我最初是一名 PHP 开发人员 所以请耐心等待 从 PHP 控制器返回 JSON 数组非常简单 我正在使用 Spring MVC 3 0 我只想
  • Liferay 7.3:如何预配置嵌入页面片段中的 portlet?

    我们正在使用 Liferay 7 3 CE 并尝试将 内容页面 与 页面片段 这一相对较新的功能结合起来 我们能够使用以下方法开发已经包含 portlet 在内容页面的上下文中称为 小部件 的页面片段

随机推荐

  • MVC3 Razor:从视图调用 javascript 函数

    我是 MVC3 Razor 的新手 想要在视图 index cshtml 上显示运行时间 我使用 javascript 函数并将其放入 Layout cshtml 中 以便所有其他 主页 视图都可以使用它 请参阅以下代码片段 Content
  • 在 R 中按周对日期进行分组

    我希望根据他们的周来标记我的数据 这是我的数据 df2 lt structure list Order Date structure c 16735 16805 16753 16830 17075 17009 17085 16740 168
  • 如何对 libgdx Stage 中的 Actor 进行排序?

    我在对 LibGdx Stage 对象中的 Actor 进行排序时遇到问题 当舞台被渲染时 图像将按照添加的顺序进行渲染 Stage 使用数组来保存 Actor 我尝试过设置每个 Actor 的 ZIndex 但仍然无法排序 然后我尝试创建
  • 重新初始化后 OpenCV 3 Tracker 将无法工作

    我在使用 OpenCV 3 跟踪模块进行跟踪时遇到问题 它的行为是相同的 我使用接口类 cv Tracker 或带有实现的类 如 cv TrackerMedianFlow 或 cv TrackerMIL 等 示例是 OpenCV 示例文件夹
  • Maven:m2eclipse:禁用工作区解析导致工件丢失

    我的 Eclipse 工作区中有项目 A 它依赖于项目 B 和 C 有时我希望 A 使用存储库中的工件 B 和 C 而不是工作区中的版本来运行 因此 我选择 A 然后选择 Maven gt 禁用工作区解析 以便 A 将使用存储库中的版本 但
  • 这是“正确”的数据库设计吗?

    我正在使用新版本的第三方应用程序 在这个版本中 数据库结构发生了变化 他们说 以提高性能 旧版本的数据库的一般结构如下 TABLE ENTITY ENTITY ID STANDARD PROPERTY 1 STANDARD PROPERTY
  • GCC 中的 C++0x 正则表达式

    以下代码 include
  • 如何在反应中单击时切换唯一一个元素的类

    我正在尝试在 React 中制作一组翻转的卡片 你可以在下面看到我的代码 当我点击卡片时 它们都会翻转 但我的目标是只翻转我点击的卡片 我怎样才能做到这一点 这是我的卡片组件 import React from react export d
  • Chrome 扩展内的 jQuery.ajax 调用失败

    我正在将我的 Firefox 扩展之一移植到 Chrome 但在 AJAX 查询方面遇到了一个小问题 以下代码在 FF 扩展中工作正常 但在 Chrome 中失败并显示状态 0 function IsImage url var isImag
  • 如何从docker容器访问Host机器的localhost 127.0.0.1

    我在本地主机上托管了 Git 守护进程 即 usr bin git daemon listen 127 0 0 1 base path opt as a systemd服务 我正在尝试从 docker 容器访问它 我没有提到该端口 因为我不
  • 在编译时检查模板参数是否无效

    当我选择时 我尝试包装 Windows API 函数来检查错误 正如我在之前的 SO 问题中发现的 我可以使用模板函数来调用 API 函数 然后调用GetLastError 检索它可能设置的任何错误 然后我可以将此错误传递给我的Error类
  • 无法解析 Firebase 身份验证 15.0.0

    我是 android 开发环境的新手 我需要将我的应用程序连接到 firebase 但我收到此错误 无法解析 firebase auth 15 0 0 该错误在语句中显示 implementation com google firebase
  • 在 Netty 客户端上发送多个异步请求

    首先 让我解释一下上下文 我必须创建一个客户端 它将发送许多 HTTP 请求来下载图像 这些请求必须是异步的 因为图像一旦完成 它就会被添加到队列中 然后打印到屏幕上 由于图像可能很大并且响应会分块 因此我的处理程序必须将其聚合到缓冲区中
  • 导入错误:没有名为 downsample 的模块

    我正在使用 Theano 操作系统是Ubuntu Theano 是最新的 我想知道为什么我能过得去from theano tensor signal downsample import max pool 2d命令 ImportError N
  • PDO FETCH_CLASS 和命名空间问题

    我正在尝试在对象上使用 PDO FETCH CLASS 我正在使用命名空间并只需输入 result query gt fetchAll PDO FETCH CLASS Product or result query gt fetchAll
  • Swift 中从 userInfo 获取键盘大小

    我一直在尝试添加一些代码以在键盘出现时向上移动我的视图 但是 我在尝试将 Objective C 示例转换为 Swift 时遇到问题 我已经取得了一些进展 但我仍停留在某一特定路线上 这是我一直在关注的两个教程 问题 如何使用 Swift
  • 如何向 Meteor 中的 body 元素添加 CSS 类?

    我正在启动一个 Meteor 项目 我想在不同的页面上使用不同的 body css 类 如果我向 body 添加一个 css 类 我会得到 Attributes on not supported 我发现的唯一方法是使用 JS 添加类 有一个
  • ASP.NET 中的 GridView 不显示有或没有数据

    我正在添加一个 GridView 然后在其中显示来自 SQL Server 数据库的数据 问题是 GridView 在有或没有数据的情况下都不会在浏览器中显示 这是我的代码
  • F#:如何将一个序列拆分为一系列序列

    背景 我有一系列连续的带时间戳的数据 数据序列中存在数据不连续的间隙 我想创建一种方法将序列拆分为序列序列 以便每个子序列包含连续的数据 在间隙处拆分输入序列 限制条件 返回值必须是序列的序列以确保元素仅根据需要生产 不能使用列表 数组 缓
  • 如何通过代码添加嵌套portlet(liferay)

    我们在 liferay 中有一个叫做嵌套 portlet 的东西 我想通过代码动态添加此 portlet 有谁知道添加嵌套 portlet 并在其中添加其他 portlet 的代码吗 谢谢 对于完整的示例 我假设您想要使用另一个 portl