在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...
- 在OrientDB中创建具有最低权限的Java用户
- 如果服务器返回错误状态,java.net.HttpUrlConnection是否总是抛出IOException?
- Spring Boot App不会部署在Glassfish 4.1上
- 在JDK 1.7中找不到jnlp.jar
- 有没有办法在Java中找到模板(通用)参数的类型?
- 如何将私钥文件从Java转换为.net x509Certificate2
- 无法使用可执行文件C:\ Program Files \ Java \ jdk-10.0.1 \ bin \ java.exe确定Java版本
- 当方法签名不允许抛出exception时,如何抛出exception?
- 如何使用Guice @Inject到现有的对象层次结构?