【问题标题】:How to access request object accross all templates in velocity?如何以速度跨所有模板访问请求对象?
【发布时间】:2015-09-02 17:02:13
【问题描述】:

我是 spring 速度模板的新手。我正在使用 VelocityViewResolver 来服务器 vm 文件。我想得到 $request.getLocale() 但不幸的是没有请求对象为空。

我可以访问 vm 文件(create_user.vm)的请求对象,该文件由控制器直接设置到上下文中,但请求对象在 header.vm 等其他 vm 文件中不可用。我需要语言环境来根据语言环境选择 javascript 文件。

我知道我可以将请求对象传递给 header.vm 或其他虚拟机,如 #parse("header.vm", $request) 但我对这种方法不满意。请告诉我正确的方法..

@RequestMapping(value = "createuser", method = RequestMethod.GET)
public ModelAndView createUser(ModelMap model) throws SQLException {

    ......
    .......

    ModelAndView courseModelView = new ModelAndView ("create_user");
    return courseModelView;
}

我的 servelt-dispatcher.xml 有速度配置。

<!--  Presentation Configuration  -->
<bean id="velocityConfig"
      class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
    <property name="resourceLoaderPath" value="/WEB-INF/vm/" />
</bean>

<bean id="viewResolver"

   class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
    <property name="cache" value="true" />
    <property name="prefix" value="" />
    <property name="suffix" value=".vm" />
    <property name="exposeSpringMacroHelpers" value="true" />
    <property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml"> 
    </property>
</bean>

【问题讨论】:

  • 通常,当您使用 toolboxConfigLocation 时,视图实现应该是 VelocityToolboxView,这会创建一个上下文并公开请求、响应、应用程序和 servletContext。可能与调试器挂钩会给出一些问题所在

标签: java spring spring-mvc velocity


【解决方案1】:

我建议您将控制器方法修改为:

@RequestMapping(value = "createuser", method = RequestMethod.GET)
public ModelAndView createUser(ModelMap model, HttpServletRequest request) throws SQLException {
    ......
    .......
    ModelAndView courseModelView = new ModelAndView ("create_user");
    courseModelView.addObject("locale", request.getLocale());
    return courseModelView;
}

然后'locale'对象将在您的模型中可用以在模板中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2012-11-16
    • 1970-01-01
    • 2018-09-15
    相关资源
    最近更新 更多