Java 如何访问velocity中所有模板的请求对象?
我是spring的velocity模板新手。我正在使用VelocityViewResolver来服务器vm文件。我想获取$request.getLocale,但遗憾的是没有请求对象为null 我可以访问vm文件create_user.vm的请求对象,该文件由控制器直接设置到上下文中,但请求对象在其他vm文件(如header.vm)中不可用。我需要区域设置来根据区域设置选择javascript文件 我知道我可以将请求对象传递给header.vm或其他vm,如parseheader.vm,$request,但我对这种方法不满意。请告诉我正确的方法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
@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。可能是与调试器挂钩,让您了解出了什么问题