我正在使用Liferay 6。
当我将Portlet添加到页面时,首先显示此页面
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
<portlet:renderURL var="homeurl">
<portlet:param name="jspPage" value="/WEB-INF/jsp/view1.jsp" />
</portlet:renderURL>
<portlet:renderURL var="homeurl2">
<portlet:param name="jspPage" value="/WEB-INF/jsp/view2.jsp" />
</portlet:renderURL>
<portlet:renderURL var="testUpdateURL">
<portlet:param name="jspPage" value="/WEB-INF/jsp/view3.jsp" />
</portlet:renderURL>
<p><a href="<%=homeurl%>" >
1. Go home
</a></p>
<p><a href="<%=homeurl2%>" >
2. Go home 2
</a></p>
<p><a href="<%=testUpdateURL%>" >
3. TestUpdate
</a></p>
这是view1.jsp
这是 view1 portlet。
同样存在其他JSP Pages,view2.jsp和view3.jsp
但是当我点击显示的任何超级显示时,没有任何事情发生,同样会再次显示。
答案 0 :(得分:0)
代码正是应该的。
如果你没有在你的控制器中设置jspPage param,它们必须是你控制器中的东西,检查一次。
答案 1 :(得分:0)
只需移动DOCROOT目录中的所有jsp页面并使用
`<portlet:renderURL var="homeurl2">
<portlet:param name="jspPage" value="/view2.jsp" />
</portlet:renderURL>`
Thish对我有用,我希望它能解决问题:)
答案 2 :(得分:0)
我在生命中并不是很好,但我也在做同样的事情。 假设我们创建了一个简单的portlet,我们给出了包名为com.portl.asif的包名。 现在默认情况下,我们的view.jsp位置是/docroot/html/asif/view.jsp。所以我认为这是我们通常创建其他jsps的地方。让我们假设我在同一目录asif中创建了另一个jsp说fill.jsp,所以它的路径为/docroot/html/asif/view.jsp 现在,如果你想通过另一个jsp页面调用那个jsp,那么使用下面这段代码为我工作
<portlet:renderURLvar="viewEmployeeDataURL"> <!-- to redirect to another jsp page -->
<portlet:param name="jspPage" value="/html/asif/second.jsp" />
</portlet:renderURL>
这里second.jsp是我想从我现在的jsp页面导航的页面
希望这对你有用
<a href="<%=viewEmployeeDataURL%>" />
如果你进一步面对或上述不适合你,请告诉我
感谢 asif aftab