在Portlet环境中使用jsp:param / c:param

我试图在Portlet环境中使用jsp:param包含JSP页面(使用Pluto portlet容器)。

例如,

    

在test.jsp中,

  or  

输出始终为null,我也尝试使用c标签,但结果相同。

    

我在网上搜索过,很多人都遇到了同样的问题,除了没有解决方法。

这是一个限制还是有不同的方法来做到这一点?

这在普通的Servlet环境中工作正常,但我从谷歌搜索看到portlet环境似乎打破了它。 这是一个耻辱,但表明portlet规范,直言不讳,打破。

如果不适合您,则替代方法是使用请求属性:

   

test.jsp

  

或者只是:

  

它不像使用params那样整洁和包含,但它应该适用于portlet。

我有同样的问题。 我的解决方案是使用Portlet的renderRequest对象(可以从包含的jsp文件访问)。 在我的portlet中,我在我的JSP中设置了RenderRequest对象的属性(通过jsp:include )。 我使用Portlet API来访问隐式的renderRequest对象。 这是一个示例:

时,MyPortlet:

 public void doView(RenderRequest request, RenderResponse response) { request.setAttribute("myBean", new MyBean()); getPortletContext().getRequestDispatcher("myMainJSP.jsp").include(request, response); } 

myMainJSP.jsp:

  

header.jsp中:

 <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> <% page import="sample.MyBean" %>  <% MyBean myBean = (MyBean)renderRequest.getAttribute("myBean"); %> ... html code...