当前位置:编程学习 > JAVA >>

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 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,