gpt4 book ai didi

java - 调用 renderURL 后 renderRequest 属性始终为 null

转载 作者:行者123 更新时间:2023-11-28 22:08:01 25 4
gpt4 key购买 nike

我似乎无法访问要传递到我的 .jsp 文件的数据。我已经将它简化为最简单的系统,但它仍然对我不起作用。此 portlet 正在部署到 liferay 门户。

问题:我单击链接为下一个 .jsp 页面调用 renderURL。在 doView() 方法中,我使用 setAttribute 设置了一个属性。当我在 .jsp 中检索该属性时,它返回 null。

预期输出:“适当的值(value)”

实际输出:“默认值”

NewPortlet.java( Controller )

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>

最佳答案

我不确定你有什么确切的用例。

但这里的问题是,您正在设置属性并尝试获取参数,因此它返回 null。

要解决您在代码中的问题,请使用 renderRequest.getAttribute("test") 或使用 el, ${test}

关于java - 调用 renderURL 后 renderRequest 属性始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31522189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com