关于Spring与Velocity结合的问题(获得request,session)

时间:2021-10-29 20:32:18

近期正在学习Spring框架,使用Spring MVC。显示使用Velocity找到一篇相关的文档,作为参考资料


视图解析器的一些属性
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="requestContextAttribute" value="rc"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>

在 视图解析器的定义中,"exposeSpringMacroHelpers"设置是否通过Spring的宏库暴露一个RequestContext(名为 springBindRequestContext)供外部使用,默认值为false。它暴露了处理表单和验证错误信息的宏操作;

"requestContextAttribute" 把Spring的RequestContext对象暴露为变量rc。利用${rc.contextPath}来获取应用程序的contextPath(也 就是/MyUsers);利用${rc.getMessage("user.name")}读取/WEB- INF/classes/messages.properties本地化信息。此对象对于那些不访问serlvet请求的View技术(也就是 Velocity和FreeMarker模板)来说是必不可少的。

还有一些属性:

exposeRequestAttributes:默认值false,设置是否所有的request属性在与模板进行合并之前添加到model中。(可以理解为request范围内包含的所有对象,而不是一个真正的Request对象。)

exposeSessionAttributes:默认值false,设置是否所有的session属性在与模板进行合并之前添加到model中。(理解同上)