0

我正在尝试将一个参数从 PortletdoView函数发送到portal_normal.vm

可能吗?我如何发送和接收它?


抱歉,我看不到通过请求的方法。

在 doView 我写

HttpServletRequest httpRequest = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest));
        httpRequest.setAttribute("hola", "hola");

在门户正常中,我尝试过:

#set ($holas =$request.get('attributes').get('hola'))
#set ($holas2 = $request.getSession().getAttribute("hola"))

$holas
$holas2

但速度只显示$holas $holas2

4

1 回答 1

0

这听起来像是一个在 portlet 之外显示一些信息的过于具体的计划——但也远远超出了 portlet 规范。可能吗?是的。它有限制吗?是的。

我没有尝试过,但我认为您不能保证所有 portlet 的所有渲染阶段在portal_normal.vm开始评估之前都已完成。从技术上讲,只有在它们真正要渲染时才需要完成它们。渲染不允许更改任何状态-您暗示在您的情况下它可能会这样做-因为在渲染时会显示其他内容。

假设您的主题具有页面上可用的一些 DOM 元素可能是有意义的。然后渲染一些操纵这个 DOM 元素的 javascript。对主题的依赖是相同的,但如果找不到 DOM 元素,您也可以回退到一些默认渲染。

或者,如果您坚持您的操作模式。您可以尝试通过 servlet-session(portlet 会话无济于事),因为您可以从 portal_normal.vm 访问 HttpServletRequest。但请注意:对 HttpServletRequest 的访问是非标准的,并不是真正的门户思维

于 2013-07-02T14:20:46.750 回答