Java 检索Liferay Portlet中Velocity模板集中的会话属性

Java 检索Liferay Portlet中Velocity模板集中的会话属性,java,session,liferay,velocity,Java,Session,Liferay,Velocity,在我的Portlet中,我在会话中设置了一些属性,我希望在Liferay使用的velocity模板中使用这些属性 我将PortletSession上的属性设置如下: portletSession.setAttribute("key", "value", PortletSession.APPLICATION_SCOPE); 现在我想在Liferay的home.vm模板中使用这些,但无论我怎么做,都没有效果: $request.get("key") $request.getAttribute("

在我的Portlet中,我在会话中设置了一些属性,我希望在Liferay使用的velocity模板中使用这些属性

我将
PortletSession
上的属性设置如下:

portletSession.setAttribute("key", "value", PortletSession.APPLICATION_SCOPE);
现在我想在Liferay的
home.vm
模板中使用这些,但无论我怎么做,都没有效果:

$request.get("key") 
$request.getAttribute("key") 
$request.getSession().getAttribute("key")
$session.getAttribute("key")
我甚至将密钥放在portal.properties中:

session.shared.attributes=key

但这似乎也不起作用。有人能给我指出正确的方向吗?

我自己找到了答案

显然,我需要将
私有会话属性设置为false。我以前试过,但是DTD在需要标记的地方非常具体


将其放置在正确的位置后,它就工作了。

在会话属性名称中添加“LIFERAY\u SHARED\u”前缀就足够了,因为session.SHARED.attributes属性的值默认包含它