我將我現有的問題改寫爲更通用的問題。我想知道Velocity是否有像JSP那樣的隱式對象引用。 我對知道請求對象特別感興趣。 在JSP我們可以得到在請求範圍的屬性等<%= request.getAttribute("req1") %>
速度模板是否有隱含的請求對象?
我知道JSP是一個servlet和<%= request.getAttribute("req1") %>
最終成爲_jspService()方法的一部分,其具有提供給它的請求對象的範圍之前請求結束。
我不知道怎樣的速度工作的幕後
爲了測試我做了如下的事情這是一個部分(也可以通過它播放它的作用在時間後離開請求對象)我以前的問題。
我有一個Spring MVC TestController,我設置了一個請求屬性。我使用Velocity模板來渲染視圖。
@RequestMapping(value="/test", method=RequestMethod.GET)
public ModelAndView display(HttpServletRequest req, HttpServletResponse resp){
...
req.setAttribute("req1", "This should be present for first request");
...
}
在Velocity模板,我做這樣的事情
Request: $request.getAttribute('req1')
,但我沒有收到REQ1的價值。我知道我應該將req1放在模型映射中而不是請求中,但我想知道隱式請求對象ref。我也試過$req1
,但它不工作。
當我對模型做同樣的事情並返回時,一切工作正常。
我哪裏錯了?
更新:同樣的事情也發生在req.getSession().setAttribute("req1", testObject)
也。
只要'$ req1'也不起作用? –
您是否可以訪問您在速度模板中使用此方法設置的模型對象?這句話對我來說似乎是正確的......也許這裏還有其他一些問題? – smp7d
是的,我可以正確訪問模型對象,@Dave我也嘗試過$ req1,它也不工作! – tintin