Liferay 6:portlet:renderURL不重定向

时间:2012-04-11 04:48:54

标签: liferay-6

我正在使用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

但是当我点击显示的任何超级显示时,没有任何事情发生,同样会再次显示。

3 个答案:

答案 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