我如何找到 - 哪些 portlet 部署在 Liferay 6.1 的哪些页面上?

2023-12-01

换句话说,我需要查看哪些数据库表才能将 portlet 映射到组织中的页面?如果有这样的事?!我们正在使用 Liferay 6.1.20


除了市场门户组件.

如果您有权访问数据库,您可以在Layout表以了解您的 portlet 添加在哪些页面中:

SELECT * FROM Layout WHERE typeSettings LIKE '%my_WAR_myportlet%';

此外,您还可以使用 service-builder 构建 FinderImpl,以通过 portlet 执行此查询,并将该 portlet 添加到页面以以您想要的任何格式显示。


下面是另一个解决方案,无需部署任何 portlet,也无需访问数据库(在 MySQL 数据库上测试):

  1. 转到服务器管理
  2. 转到脚本选项卡
  3. Select Beanshell从语言下拉菜单中
  4. 将以下脚本代码粘贴到文本区域中,然后按按钮执行:

    import com.liferay.portal.kernel.dao.jdbc.DataAccess;
    import com.liferay.portal.kernel.log.Log;
    import com.liferay.portal.kernel.log.LogFactoryUtil;
    import com.liferay.portal.kernel.util.StringBundler;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.List;
    
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    
    try {
        con = DataAccess.getUpgradeOptimizedConnection();
    
        // your custom query here
        String sqlQuery = "SELECT * FROM Layout WHERE typeSettings LIKE '%my_WAR_myportlet%'";
    
        out.println("SQL Query: "+ sqlQuery);
    
        ps = con.prepareStatement(sqlQuery);
    
        rs = ps.executeQuery();
    
        ResultSetMetaData rsmd = rs.getMetaData();
    
        int columnCount = rsmd.getColumnCount();
    
        List rows = new ArrayList();
    
        List columnLabels = new ArrayList();
    
        columnLabels.add("Sr. No.");
    
        for (int c = 1; c <= columnCount; c++) {
            String cl = rsmd.getColumnLabel(c);
            columnLabels.add(cl);
        }
    
        while (rs.next()) {
            List row = new ArrayList(columnCount);
    
            for (int c = 1; c <= columnCount; c++) {
                Object value = rs.getObject(c);
                row.add(value);
            }
    
            rows.add(row);
        }
    
        // --- formatting the results ---
    
        out.append("<div class=\"lfr-search-container \"><div class=\"results-grid\">");
        out.append("<table class=\"taglib-search-iterator\">");
        out.append("<thead>");
        out.append("<tr class=\"portlet-section-header results-header\">");
    
        for (String value : columnLabels) {
            out.append("<th>");
            out.append(value);
            out.append("</th>");
        }
    
        out.append("</tr>");
        out.append("</thead>");
        out.append("<tbody>");
    
        boolean alt = false;
    
        long resultsCount = 1;
    
        for (List line : rows) {
            out.append("<tr class=\"portlet-section-alternate results-row " + (alt ? "alt" : "") + "\">");
    
            // for sr. no.
            out.append("<td>");
            out.append(resultsCount + "");
            out.append("</td>");
    
            resultsCount = resultsCount + 1;
    
            for (Iterator iterator = line.iterator(); iterator.hasNext();) {
                Object value = (Object) iterator.next();
                out.append("<td>");
                if (value != null) {
                    out.append(value.toString());
                } else {
                    out.append("<span style=\"font-style:italic\">null</span>");
                }
                out.append("</td>");
            }
            out.append("</tr>");
            alt = !alt;
        }
    
        out.append("</tbody>");
    
        out.append("</table>");
        out.append("</div></div>");
    
    } catch (Exception exp) {
        out.println("ERROR: " + exp);
        throw exp;
    }
    finally {
        DataAccess.cleanUp(con, ps, rs);
    }
    
  5. 请记得更改字符串my_WAR_myportlet到您的 portletId

  6. 不用说,您可以修改脚本来更新样式并可以显示选择性列。您也可以运行任何 SQL 查询,只需更新String sqlQuery.

希望这可以帮助。

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

我如何找到 - 哪些 portlet 部署在 Liferay 6.1 的哪些页面上? 的相关文章

  • 为什么settimeout不延迟函数执行?

    function tryToDownload url oIFrm document getElementById myIFrm oIFrm src url alert url url escape url setTimeout delete
  • 如何在 Liferay 6 中以编程方式创建结构和模板

    我需要通过 java 代码以编程方式创建结构和模板 我使用了以下代码片段 结构 public void createStructure String userName long userId log info Inside create s
  • 代理设置 Wildfly

    我有一个 Wildfly 10 应用程序服务器 上面运行着一个 Liferay 6 2 实例 并且我一直在尝试正确设置代理设置 但是 所有需要外部 Internet 连接的 Portlet 都会遇到超时 在standalone conf 文
  • aui 上的 ajax:选择 liferay

    我知道这是不可能将参数从 javascript 传递到 jsp 页面中的 scriptlet 代码 所以我想使用ajax将我选择的值发布到服务器 然后通过请求对象在scriptlet代码中获取它 我用
  • 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 集群的分步教程吗 谷歌给我找到了这篇文章 名为
  • 在 Life ray 中自定义站点管理员角色的权限?

    我想自定义站点管理员角色权限 即我需要启用一项功能来创建用户以在相应站点下进行站点管理 我怎样才能做到这一点 我需要用 Hook 来实现它还是需要创建 EXT 或者任何其他更简单的方法来实现这一目标 我需要在相应站点下启用用户创建并为站点管
  • 在liferay搜索容器中显示来自自定义查询(连接表)的数据

    我已关注这个维基 http www liferay com community wiki wiki Main Custom queries in Liferay 5 2并已成功构建自定义查询 效果很好 我在表之间使用了联接 我的问题是如何使
  • 服务器重启后 Liferay 调度程序不工作

    我正在使用下面的代码安排工作 Controller RequestMapping VIEW public class MyController RenderMapping public String defaultView try Stri
  • 在 Liferay-Portlet 中哪里放置资源-操作-映射?

    我正在尝试根据以下内容向 Liferay Portlet 添加权限Liferay 文档 http www liferay com web guest community wiki wiki Main Using 20Liferay s 20
  • 从 Portlet 中删除自定义权限/操作

    我已经能够根据 Liferay Plugins SDK 中的示例定义自定义 portlet 操作 权限 https github com liferay liferay plugins tree master portlets sample
  • Liferay:从 init() 获取 PortletID 和 companyID

    也许通过 init PortletConfig 中的 PortletConfig 问题是使用 PortletConfigImpl portletConfig getPortletId 不再允许 因为在 package properties
  • 将变量传递给jsp

    我有一个java类 public void doView RenderRequest renderRequest RenderResponse renderResponse throws IOException PortletExcepti
  • 如何向 Vaadin/Maven 项目添加 css?

    那里存在SO 的一个问题 https stackoverflow com questions 5594747 where is the css style sheet for vaadin关于如何向 Vaadin 项目添加 css 提示是添
  • Hibernate:未配置 CurrentSessionContext

    我不断收到 Hibernate异常 否 CurrentSessionContext已配置 在我的代码中 其他搜索返回的唯一信息是罪魁祸首是
  • Liferay:登录 Liferay 的默认方法是什么?

    通过开发 portlet hooks 等 我看到了在 Liferay 中登录的不同方法 是否有我可以使用的默认日志记录方法 Liferay Way 1 如何初始化记录器 2 如何配置日志级别 我看到可以直接在Liferay 控制面板中修改日
  • Liferay 7 中自定义登录后操作中的 LAST_PATH 重定向

    我正在 Liferay 7 中实现自定义登录 一个用于登录挂钩 portlet 的模块 一个用于 ActionCommand 的模块 我还为登录后事件生成了类 问题是重定向在此类或登录挂钩 porlet 的 JSP 上都不起作用 这是我的
  • IntelliJ IDEA 中为 Tomcat 设置了哪个应用程序上下文?

    到目前为止 我在 Windows 命令中运行 Tomcat 服务器 v 7 0 26 catalina bat start脚本 如果我想部署我的 Web 应用程序 我必须通过 Maven 构建它并复制 WAR 到指定 Tomcat 部署目录
  • 精简 Liferay:删除 Hibernate 和其他未使用的应用程序

    我有一些有关 Liferay 与 hibernate 交互的问题 由于某些原因 我们希望从应用程序中消除这一层 因此有以下问题 我知道Liferay是与Hibernate一起打包的 并且通过使用Hibernate API简化了对Lifera
  • Liferay ajax 请求和 JSON 响应

    我是 Liferay 的新人 我使用服务生成器来创建数据库 我手动填充它们 最终我可以使用 JSP 调用它们PersonLocalServiceUtil class 现在我想在我的程序中使用Ajax 例如 有属性的人personID per

随机推荐

  • 可视化两组数据之间的关联

    其中每个数据点都有 A 和 B 的配对 并且 A 中有多个条目 B 中有多个整体 即 多个综合症和多个诊断 尽管对于每个数据点来说 都有一个综合症 诊断对 非常感谢示例 建议或想法 数据是这样的 我想查看 A 和 B 值之间的联系 有多少
  • 如何允许下载从 AJAX 作为二进制数据返回的文件

    我的问题是 我首先向客户端发送 PDF 进行下载 然后我需要检查我的数据库中是否存在某些数据 然后根据该检查 我需要显示问题 如果用户想要下载我生成的另一个 PDF My Code Here I just make dialog for q
  • `... | 是什么意思?类型类声明中的 b -> c` 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 是什么for 在 Haskell 类定义中 以下内容 来自Data HList HListPrelude 我该如何解释 l l gt l part class HAppend l l l l l gt
  • 如何使用 selenium python 抓取网站中的 ::before 元素

    我正在尝试使用硒从该网站上抓取电话号码 我发现该类是 tel ttel 但是当我尝试通过 find element by xpath 抓取网站时 我得到一个空字符串 My code wd webdriver Chrome chrome pa
  • Android 网页视图 POST

    我试图完成一些非常简单的事情 但我没有找到关于这方面的好的文档 我有一个 webView 我需要在其中加载一个需要 POST 数据的页面 看起来像一个简单的过程 但我找不到在 webView 中显示结果的方法 该过程应该很简单 查询 带有
  • 有谁的 iOS 应用程序因使用设备 UDID 而被 Apple 拒绝吗?

    我听到一些传言称苹果正在拒绝使用 iOS5 已弃用方法的应用程序 UIDevice uniqueIdentifier 任何人都可以确认他们的应用程序因此被拒绝吗 我知道使用这种已弃用的方法的替代方法 但我们的一位客户要求我们使用我们知道使用
  • 在使用 java 日志记录 API 时,如何禁用默认控制台处理程序?

    您好 我正在尝试在我的应用程序中实现 java 日志记录 我想使用两个处理程序 文件处理程序和我自己的控制台处理程序 我的两个处理程序都工作得很好 我的日志记录发送到文件和控制台 我的日志记录也被发送到默认的控制台处理程序 这是我不想要的
  • 处理 bash for...in 循环中的特殊字符

    假设我有一个文件列表 file1 file 1 file2 for in 循环将其分解为空格 而不是换行符 for x in ls do echo x done results file 1 file1 file2 我想对每个文件执行一个命
  • 如何在预定义的固定时间运行 MYSQL 查询?

    我有一个 Mysql 插入查询 我需要每天上午 11 00 运行查询 如何在MySQL中执行固定时间的查询 在 MS SQL 中 我可以通过 SQL Server 代理作业调度程序轻松完成此操作 那么 有什么方法可以在 MySQL 中运行预
  • 空手道测试在每个场景/功能之后进行清理[重复]

    这个问题在这里已经有答案了 这是我们使用空手道进行测试时面临的一个实际场景 我们有一个使用空手道测试的图形 API 想象一下这个 每个空手道功能都会在图中创建父节点和子节点以验证某些业务逻辑 然后想象一下有一套 100 个测试 这意味着创建
  • Heroku 错误:Web 进程无法在启动后 60 秒内绑定到 $PORT(使用 axios)

    这是完整的错误代码 错误 R10 启动超时 gt Web 进程未能在启动后 60 秒内绑定到 PORT 很多答案都说这与设置端口有关 因为heroku是动态设置的 但是如果我使用axios而不是server listen 并且需要mcsrv
  • 使用 FileWriter (Java) 以 UTF-8 写入文件?

    但是 我有以下代码 我希望将其编写为 UTF 8 文件来处理外来字符 有没有办法做到这一点 是否需要有一个参数 我非常感谢您对此的帮助 谢谢 try BufferedReader reader new BufferedReader new
  • Ajax 函数(如 .load())从 HTML 中删除注释。如何保留评论?

    例如 some div load http foo bar content 将检索 content from http foo bar但对于所有 HTML被剥夺了 我如何检索内容 content 包括任何意见 来自jQuery 手册 jQu
  • Rust 与 C++:从函数返回对象

    我是 Rust 新手 试图了解从函数返回对象时如何传递所有权 在以下基于引用的实现中 由于引用没有所有权 因此当 s 超出范围时 它会被删除并释放 fn dangle gt String dangle returns a reference
  • MPMoviePlayerController 多任务问题

    我在 iPhone 上开发一个应用程序 使用 MPMoviePlayerController 来播放音频文件 当应用程序进入后台时 如果 mpmovieplayer 正在播放 iPhone 会继续播放当前音乐 但当播放结束时 下一首曲目不会
  • React,从组件中的脚本访问 var

    我一直在尝试导入外部库 谷歌地图 以便在 React 组件中使用它 索引 html file div div
  • SSL 证书不受信任 - 仅在移动设备上[关闭]

    Closed 这个问题是无关 目前不接受答案 我的网站在桌面上通过 SSL 运行良好 chrome 我的地址栏附近有一个绿色的锁 上面写着 身份已验证 但是使用移动移动浏览器 Chrome Safari 我看到以下消息 该网站的身份尚未得到
  • 以 10 为基数的 int() 的文字无效 - django - 更新

    我是 django 初学者 并且 我正在尝试制作一个像组合框一样的子父项 条形取决于城市取决于国家 地区 我收到此错误 更新 更改了外键的模型和默认值 但仍然是相同的错误 有什么帮助吗 谢谢 这是 models py from django
  • 为什么这段代码的输出是111111?

    这是代码 我试图解决它 但我不明白它的输出怎么是111111 public class Test public static void main String args int list 1 2 3 4 5 6 for int i 1 i
  • 我如何找到 - 哪些 portlet 部署在 Liferay 6.1 的哪些页面上?

    换句话说 我需要查看哪些数据库表才能将 portlet 映射到组织中的页面 如果有这样的事 我们正在使用 Liferay 6 1 20 除了市场门户组件 如果您有权访问数据库 您可以在Layout表以了解您的 portlet 添加在哪些页面