Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用renderRequest后,renderRequest属性始终为空_Java_Jsp_Tomcat_Liferay_Portlet - Fatal编程技术网

Java 调用renderRequest后,renderRequest属性始终为空

Java 调用renderRequest后,renderRequest属性始终为空,java,jsp,tomcat,liferay,portlet,Java,Jsp,Tomcat,Liferay,Portlet,我似乎无法访问要传递给.jsp文件的数据。我已经把它简化成了简单的东西,但它仍然不适合我。此portlet正在部署到liferay门户 问题:我单击链接为下一个.jsp页面调用renderURL。在doView()方法中,我使用setAttribute设置了一个属性。在.jsp中检索该属性时,它返回null 预期输出:“适当值” 实际输出:“默认值” NewPortlet.java(控制器) view.jsp <%@ taglib uri="http://java.sun.com/port

我似乎无法访问要传递给.jsp文件的数据。我已经把它简化成了简单的东西,但它仍然不适合我。此portlet正在部署到liferay门户

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

预期输出:“适当值”

实际输出:“默认值”

NewPortlet.java(控制器)

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>
<%@ 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>

edit.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>
<%@ 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>

“view.jsp”是指使用
portlet:renderURL
的“edit.jsp”,这可能是一个问题<代码>渲染请求可以按顺序或并行执行,无需任何保证顺序。


我不确定为什么您的工作流是这种方式(即在doView方法中设置参数),但请尝试actionURL而不是renderURL。

我不确定您有什么确切的用例

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


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

好的,您正在doView方法中设置一个属性,并在jsp中获取参数。它肯定会返回null,因为不会有任何名为test的参数集谢谢,这就是为什么额外的一双眼睛总是很有用的原因。。一旦你盯着你的代码看了足够长的时间,这些类型的错误就变得不可见了,而这不是问题所在,谢谢你提出这个问题。我将使用actionURL