我试图在某个速度模板中访问HttpServletRequest,但从未成功。 我已经尝试过以下语法风格
当前网址:$ req.get(“attributes”)。get(“CURRENT_URL”)) 结果>当前网址:$ req.get(“attributes”)。get(“CURRENT_URL”))
当前网址:$ request.get(“attributes”)。get(“CURRENT_URL”)) 结果>当前网址:$ request.get(“attributes”)。get(“CURRENT_URL”))
当前网址:$ request.get(“attributes”)。get(“CURRENT_URL”)) 结果>当前网址:$ request.get(“attributes”)。get(“CURRENT_URL”))
当前网址:$ {request.get(“attributes”)。get(“CURRENT_URL”))} 结果>当前网址:$ {request.get(“attributes”)。get(“CURRENT_URL”))}
注意:Web.xml看起来像
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- Define Velocity template compiler -->
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<!--
Unless you plan to put your toolbox.xml and velocity.properties
under different folders or give them different names, then these
two init-params are unnecessary as of VelocityTools 1.3. The
VelocityViewServlet will automatically look for these files in
the following locations.
-->
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
</servlet>
<!-- Map *.vm files to Velocity -->
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
答案 0 :(得分:5)
$的request.getParameter( “参数名称”)
答案 1 :(得分:3)
对于VelocityTools,正确的引用是$ request和$ response,而不是$ req和$ res
方法名称是getAttribute,而不是get。所以你可以这样做:
$ request.getAttribute( '富')
或只是$ request.foo
但不是$ request.get('foo')
答案 2 :(得分:2)
默认情况下,您无法在Velocity模板中访问HttpServletRequest
;您只能访问已放入Context
的对象。因此,在支持Java类中,将所需的信息添加到conext:
context.put("url", request.getAttribute("CURRENT_URL"));
然后在Velocity模板中,您只需引用$url
。
答案 3 :(得分:0)
您需要根据会话推出自己的课程才能正确执行此操作。
我立即遇到了这个问题,现在我要创建一个会话类,我将通过values属性作为HashMaps列表访问。
然后,您需要做的就是在使用前将值分配给速度一次。
context.put("session", MySessionClass.values));
答案 4 :(得分:0)
获取特定参数:
$!request.getParameter('parameterName')
获取整个查询字符串:
$!request.getQueryString()
答案 5 :(得分:0)
试试这个
$request.getSession().getAttribute('userId')