在 Liferay 7 中覆盖登录 jsp

Overriding the login jsp in Liferay 7

在 Liferay 7 中,我想覆盖登录 jsp。

作为第一个测试,我已经尝试通过以下 link

成功覆盖 bottom-ext.jsp

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/overriding-core-jsps

在那之后,因为 login.jsp 不是 Liferay 7 中的核心 jsp 而是一个模块 jsp,我尝试了以下 link :

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/overriding-a-modules-jsps

但不幸的是,在尝试部署*并启动后,我的登录视图没有任何变化,而我在 login.jsp 文件中添加了一些自定义 html。

有没有人成功按照之前的教程学习?

对于我失败的测试,我有:

  1. 首先检索示例项目

https://github.com/liferay/liferay-blade-samples/tree/master/liferay-workspace/modules/blade.hook.jsp

  1. 接下来在第 18 行和第 20 行之间用自定义 html 修改了 login.jsp

<p style="color: red">changed</p>
<h1>Hello World</h1>
<c:choose>

  1. Liferay 模块项目似乎未部署*,因为部署期间 Eclipse 控制台中没有写入任何内容。通常,对于我的其他项目模块,我会收到以下消息:

16:31:49,741 信息 [pool-8-thread-2][BundleStartStopLogger:35] 启动项目。module_name_1.0.0 [864]

但在这种情况下不是...

钩子在 liferay 7 中总是保持在解析状态, 此外,当您部署该挂钩时,日志中似乎没有任何内容,似乎表明您的登录 portlet 版本不同。

在 gogo 中检查你的版本 shell & 在 bnd.bnd

中的这一行替换它
Fragment-Host: com.liferay.login.web;bundle-version="1.0.0"

当你部署它时,应该会出现一条消息,比如停止和启动 login.web, 这就是 JSP Fragments 挂钩的工作方式。

最新的 Liferay IDE 3.1.0(12 月发布)提供了创建 JSP 片段挂钩的选项,如果您通过 BLADE CLI 遇到问题,请尝试这样做。