【发布时间】: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