我的问题是关于Liferay钩子和portlet 6.0。
我用jsps覆盖了liferay portlet。例如document_library / view.jsp - 测试 - 工作正常。 (我有自定义-jsp-dir设置等)
现在我想在这个钩子中创建我的portlet,最后渲染了hook的document_library / view.jsp。
但我得到错误:
org.apache.jasper.JasperException: /WEB-INF/html/portlet/document_library/view.jsp(17,1) File "/html/portlet/document_library/init.jsp" not found
我没有创建init.jsp - 我希望这个钩子能够使用Liferay document_library原创的。
你能帮助我吗?
我也问http://www.liferay.com/community/forums/-/message_boards/message/9583788
谢谢
答案 0 :(得分:3)
简短的回答:你不能。
原因:来自钩子custom-jsp目录的JSP将被复制到门户网站 - 因此它们将在liferay的类加载器中运行。但是你的portlet会在你的插件的类加载器中运行,因此无法访问liferay的jsps。
钩子中的JSP(那些被声明为门户网站的custom-jsps的JSP)不能在同一个插件中的portlet中使用。这是设计使然,除了将它们复制到portlet可以访问它们的路径之外,你无法解决这个问题。
作为最佳实践,我建议创建一个用于修改Liferay的钩子和一个带有新(附加)portlet的单独portlet插件。使portlet自包含。在某些情况下,将钩子和portlet结合起来是件好事,但如果将修改和添加分开,我最喜欢它。