Java 自定义现有的内置Liferay portlet
我浏览了Liferay文档和许多其他教程。但我仍然对完成我的要求感到惊讶 这就是我需要实现的目标: 1.)在Wiki(内置)Portlet(Portlet中的任何位置)中创建新的自定义按钮或链接(href) 2.)单击该按钮后,我只想在该portlet中打开一个新的jsp页面 我就是这么做的: 我创建了一个Liferay钩子项目,并选择了/wiki/view.jsp进行自定义。 通过以下方式添加了一个按钮:Java 自定义现有的内置Liferay portlet,java,jsp,liferay,portlet,liferay-6,Java,Jsp,Liferay,Portlet,Liferay 6,我浏览了Liferay文档和许多其他教程。但我仍然对完成我的要求感到惊讶 这就是我需要实现的目标: 1.)在Wiki(内置)Portlet(Portlet中的任何位置)中创建新的自定义按钮或链接(href) 2.)单击该按钮后,我只想在该portlet中打开一个新的jsp页面 我就是这么做的: 我创建了一个Liferay钩子项目,并选择了/wiki/view.jsp进行自定义。 通过以下方式添加了一个按钮: 由于/c/portal/sample url,您的jsp将打开整个页面 您应该使用一些参
由于/c/portal/sample url,您的jsp将打开整个页面
您应该使用一些参数集创建renderURL。在重写的StrutAction类的render方法中,检查该参数并呈现自定义jsp
同样,对于action方法,在actionURL中设置一些参数,并在重写的StrutAction类的processAction中检查该参数。首先,您的liferay-hook.xml看起来不正确。它还应该有一个元素,该元素应该指向钩子中的文件夹,您在其中放置了Wikiportlet的定制view.jsp
<custom-jsp-dir>/custom_jsps</custom-jsp-dir>
/custom\u JSP
此文件夹还应包含单击按钮时要打开的其他JSP文件
注意:在portlet环境中,您不能简单地通过超链接其路径来打开jsp。它将作为独立的jsp由web容器提供。因此,您必须生成一个PortletURL,并从您的Portlet/StrutsAction分派请求生成相应的JSP
因此,在view.jsp中,您需要根据需要使用or标记(如上面提到的Pankaj)创建PortletURL
或者,另一个更简单的解决方案(或者说hack)是使用JQuery.ajax并使用ajax加载JSP的内容
<custom-jsp-dir>/custom_jsps</custom-jsp-dir>