我似乎無法訪問我想傳遞給我的.jsp文件的數據。我已經簡化了它,它仍然不適合我。此portlet正在部署到liferay門戶。調用renderURL後,renderRequest屬性總是爲空
問題:我點擊鏈接爲下一個.jsp頁面調用renderURL。在doView()方法中,我使用setAttribute設置了一個屬性。當我在.jsp中檢索該屬性時,它將返回null。
預期輸出: 「固有值」
實際輸出: 「默認值」
NewPortlet.java(控制器)
public class NewPortlet extends MVCPortlet {
@Override
public void doView(RenderRequest request, RenderResponse response)
throws IOException, PortletException {
request.setAttribute("test", "Proper Value");
String path = ParamUtil
.getString(request, "path", "/html/new/view.jsp");
include(path, request, response);
}
}
view.jsp的
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
<portlet:renderURL var="testURL">
<portlet:param name="path" value="/html/new/edit.jsp"/>
</portlet:renderURL>
<p><a href="<%= testURL %>">Click me!</a></p>
edit.jsp文件
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<portlet:defineObjects />
<%
String test = ParamUtil.getString(renderRequest, "test", "default value");
%>
<p><%= test %></p>
那麼,你是設定doView方法的屬性,並在jsp中獲得的參數。它肯定會返回你爲空,因爲不會有任何參數集名爲測試 –