velocity 获取项目上下文

<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="false" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="suffix" value=".vm" />
<property name="exposeRequestAttributes" value="true" />
<property name="requestContextAttribute" value="rc"/> 
<property name="exposeSpringMacroHelpers" value="true" /><!--是否使用spring对宏定义的支持-->  
<property name="order">
<value>0</value>
</property>
<property name="dateToolAttribute">
<value>dateTool</value>
</property>
<property name="numberToolAttribute">
<value>numberTool</value>
</property>
</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中。(理解同上)html

相关文章
相关标签/搜索