2016-07-18 36 views
0

我嘗試獲取速度模板中的會話屬性,彈簧啓動 但我無法獲取會話屬性。速度模板中獲取會話屬性

$!request.getParameter('user') 
$request.getParameter('user') 
#set ($user = $request.get('user')) 
$user 
$session.geAttribute('user') 
$request.getSession().getAttribute('user') 

我嘗試使用這些..但是,我無法獲得正確的價值。

如何在Velocity中獲取會話屬性?

+0

你是如何配置速度的? – aksappy

+0

@aksappy Application.properties 'spring.velocity.content型= text/html的;字符集= UTF-8 spring.velocity.expose會話的屬性=真 spring.velocity.expose請求的屬性= true' – Saveyourself

回答

0

如果您使用的速度,工具的VelocityViewServlet,所有 如下:

$session_attr 
$session.getAttribute("session_attr") 
$request.getSession().getAttribute("session_attr") 
$request.session.getAttribute("session_attr") 

應該工作。

你可以嘗試檢查什麼是與以下 片段代碼的會話中:

<ul> 
    #foreach($name in $session.getAttributeNames())  
     <li> $name = $session.getAttribute($name) </li> 
    #end 
</ul> 
+0

在過濾器中,我可以獲得會話值 'System.out.println(req.getSession()。getAttribute(「user」));' 但是,在速度模板中,仍然無法獲取值。 – Saveyourself

+0

你可以明確地把'user'對象放入Velocity Context中,並檢查它是否正確拾取。在給定的配置中我沒有看到問題。 – aksappy

0

你最好暴露會話屬性的模式,以便您可以定製VelocityViewResolver和setExposeSessionAttributes是真的