Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问velocity中所有模板的请求对象?_Java_Spring_Spring Mvc_Velocity - Fatal编程技术网

Java 如何访问velocity中所有模板的请求对象?

Java 如何访问velocity中所有模板的请求对象?,java,spring,spring-mvc,velocity,Java,Spring,Spring Mvc,Velocity,我是spring的velocity模板新手。我正在使用VelocityViewResolver来服务器vm文件。我想获取$request.getLocale,但遗憾的是没有请求对象为null 我可以访问vm文件create_user.vm的请求对象,该文件由控制器直接设置到上下文中,但请求对象在其他vm文件(如header.vm)中不可用。我需要区域设置来根据区域设置选择javascript文件 我知道我可以将请求对象传递给header.vm或其他vm,如parseheader.vm,$requ

我是spring的velocity模板新手。我正在使用VelocityViewResolver来服务器vm文件。我想获取$request.getLocale,但遗憾的是没有请求对象为null

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

我知道我可以将请求对象传递给header.vm或其他vm,如parseheader.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具有velocity配置

<!--  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>

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

@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”对象将在模型中可用,以在模板中使用。

通常,使用toolboxConfigLocation时,视图实现应为VelocityToolboxView,这将创建一个上下文并公开请求、响应、应用程序和servletContext。可能是与调试器挂钩,让您了解出了什么问题