spring下关于velocity如何获取url参数的问题
最近在使用spring,利用velocity作为表现层。但是遇到个在vm模版中如何获取request,session属性的问题。我配置如下。
springContext.xml
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath">
<value>WEB-INF/velocityViews/</value>
</property>
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
</props>
</property>
</bean>
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="suffix" value=".vm"/>
<property name="contentType"><value>text/html;charset=UTF-8</value></property>
<property name="exposeRequestAttributes" value="true"></property>
</bean>
控制器
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println(request.getParameter("test"));
return new ModelAndView("hello");
}
hello.vm模版代码
<html >
<head>
<title>VM首页</title>
</head>
<body>
#set($word="中国")
hello,$word
$request.parameter.test
</body>
</html>
但我使用hello.html?test=111访问时,在控制器里面确实获得了request的test内容,但是在vm模版上却无法获取,但是我已经设置exposeRequestAttributes为true了啊。
请各位大侠帮忙
--------------------编程问答-------------------- 就算使用$request.getParameter("test")也无法获得。各位大侠帮忙啊,到底怎么样才能获取模版内置的request,session等对象呢?? --------------------编程问答-------------------- 只用过freemaker,没用过velocity,帮顶 --------------------编程问答-------------------- 没用过 ,mark下 --------------------编程问答-------------------- 不好意思,只能帮你顶......... --------------------编程问答-------------------- 关注,要是你自己解决了 说下,大家学习 --------------------编程问答-------------------- 还是没人吗??自己顶了 --------------------编程问答-------------------- 不会啊,路过帮顶 --------------------编程问答-------------------- 继续顶 --------------------编程问答-------------------- 你java代码中的 test 是如何跟你那个页面联系的 你也没有映射 它哪知道往哪里显示 +_+ --------------------编程问答-------------------- 嘿嘿,我也在找这方面的解答,定上去。。。。 --------------------编程问答-------------------- 我也再找答案,帮顶~ --------------------编程问答-------------------- 你可以在你的java文件里将这些参数put到对象里,然后通过$xxx来获取这个参数值。这个是肯定可行的。。。 --------------------编程问答-------------------- 没有用过,顶上去! --------------------编程问答-------------------- <html >
<head>
<title>VM首页</title>
</head>
<body>
#set($word="中国")
hello,$word
#set($test1 = $request.getParameter('test'))
$test1
</body>
</html>
velocity取内置对象要先set的,这样就可以取到了,试试吧 --------------------编程问答-------------------- 我也遇到了,请问楼主解决了木有? --------------------编程问答--------------------
<!-- Velocity 视图解析器 -->
<entry key="vm">
<bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="viewClass" value="cn.zwork.eap.base.view.ExtVelocityView" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="requestContextAttribute" value="rc" />
</bean>
</entry>
"requestContextAttribute" 把Spring的RequestContext对象暴露为变量rc。利用${rc.contextPath}来获取应用程序的contextPath(也 就是/MyUsers);利用${rc.getMessage("user.name")}读取/WEB- INF/classes/messages.properties本地化信息。此对象对于那些不访问serlvet请求的View技术(也就是 Velocity和FreeMarker模板)来说是必不可少的。
补充:Java , Web 开发