0

我正在使用 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 页面 view2.jsp 和 view3.jsp

但是当我点击任何显示的超级链接时,什么都没有发生,同样的情况再次显示。

4

3 回答 3

0

只需在 DOCROOT 目录中移动所有 jsp 页面并使用

`<portlet:renderURL var="homeurl2">
       <portlet:param name="jspPage" value="/view2.jsp" />
 </portlet:renderURL>`

这对我有用,我希望它能解决问题:)

于 2013-05-15T10:52:02.203 回答
0

我在liferay上不是很好,但我也在做同样的事情。假设我们创建了一个简单的 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

于 2013-12-10T18:42:50.910 回答
0

代码正是它应该的。

它们必须在您的控制器中,如果您没有在控制器中设置 jspPage 参数,请检查一次。

于 2012-04-11T17:33:25.433 回答