1、在applicationContext.xml中配置具有json解析功能的bean,例如
<bean id="escapeTool" class="org.apache.velocity.tools.generic.EscapeTool" />
<bean id="jsonTool" class="org.codehaus.jackson.map.ObjectMapper" />
2、在webmvc-conf.xml文件中的VelocityLayoutViewResolver中,给attributesMap属性配置前面声明的bean:
<property name="attributesMap">
<map>
<entry key="esc" value-ref="escapeTool" />
<entry key="json" value-ref="jsonTool" />
</map>
</property>
3、在vm页面中可以用$json.方法名;例如:$json.writeValueAsString(Object o);
4、VelocityLayoutViewResolver本身也提供了常用的工具标签,例如:日期函数dateToolAttribute,数字函数numberToolAttribute,这样就可以直接给该属性的value赋值,让页面上直接使用。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache" value="false" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="dateToolAttribute" value="date" /><!--日期函数名称 -->
<property name="numberToolAttribute" value="number" /><!--数字函数名称 -->
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="requestContextAttribute" value="rc" />
<property name="layoutUrl" value="layouts/layout.vm" />
<property name="attributesMap">
<map>
<entry key="esc" value-ref="escapeTool" />
<entry key="json" value-ref="jsonTool" />
</map>
</property>
</bean>