我正在尝试覆盖以下示例的门户网页update_password.jsp
:
- JSP覆盖使用自定义JSP包和
- 这个例子来自Dave Nebinger
我还设置了属性service。在我的CustomJspBag子类中,rank:Integer=112。我的模块部署和启动没有错误,portal-web/docoot/html/portal/update_password.jsp中的页面被新的页面替换,旧的页面变成update_password.portal.jsp。类被激活,getCustomJsps()
返回页面名称。
但是这些更改在浏览器中是不可见的。旧的页面一直在显示。我怎样才能让它工作?
感谢您添加门户版本@Luke,我现在使用相同的版本复制了这个问题。
然后,在使用以下资源之后,我设法创建了一个覆盖update_password.jsp的工作应用程序:
https://git.fortiss.org/civitas-digitalis/platform/-/tree/master/modules/UpdatePasswordOverride
https://www.softwaresavvyblog.com/post/liferay-overriding-core-jsps
我已经用我的工作应用程序创建了一个存储库,向您展示代码的确切外观,它将打印一个"OVERRIDDEN">
http://localhost:8080/c/portal/update_password
我的存储库位于这里:
https://github.com/peterpetrekanics/UpdatePwOverride7310
以下是我采取的详细步骤:
- 在您的计算机上创建一个新的Liferay工作区
在终端上使用blade init命令
选择dxp-7.3-sp1 - 创建MVC Portlet项目并删除不必要的文件
- 确保您的构建。gradle文件包含这一行:
compileOnly group: "com.liferay.portal" name: "release.portal.api">
否则你的类将无法检测到导入: - 修改类:
添加"implements CustomJspBag"> - 实现未实现的方法(这是使用Liferay Developer Studio可能会很方便的部分)
我使用了前面提到的博客资源。 - 构建项目并将其部署到正在运行的7.3 GA1服务器
- 访问此页面,覆盖的消息应该出现:
http://localhost:8080/c/portal/update_password
我希望这有帮助,请告诉我,如果你得到其他结果