Spring MVC 4.0 + Velocity Tools 2.0遇到的问题
来源:互联网 发布:java数据库开发培训 编辑:程序博客网 时间:2024/06/01 09:24
1、Spring MVC 4.0及更高版本不建议使用Velocity模板引擎,为了继承Velocity并使用Velocity Tools,需要重写viewClass,如下:
import org.apache.velocity.context.Context;import org.apache.velocity.tools.Scope;import org.apache.velocity.tools.ToolManager;import org.apache.velocity.tools.ToolboxFactory;import org.apache.velocity.tools.view.ViewToolContext;import org.springframework.web.servlet.view.velocity.VelocityLayoutView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.Map;public class VelocityLayoutToolbox2View extends VelocityLayoutView { private static ToolboxFactory toolboxFactory = null; @Override protected Context createVelocityContext(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { // Create a ChainedContext instance. ViewToolContext vtc; vtc = new ViewToolContext(getVelocityEngine(), request, response, getServletContext()); vtc.putAll(model); if (toolboxFactory == null) { ToolManager toolManager = new ToolManager(); toolManager.setVelocityEngine(getVelocityEngine()); toolManager.configure(getServletContext().getRealPath(getToolboxConfigLocation())); toolboxFactory = toolManager.getToolboxFactory(); } if (this.getToolboxConfigLocation() != null) { if (toolboxFactory.hasTools(Scope.REQUEST)) { vtc.addToolbox(toolboxFactory.createToolbox(Scope.REQUEST)); } if (toolboxFactory.hasTools(Scope.APPLICATION)) { vtc.addToolbox(toolboxFactory.createToolbox(Scope.APPLICATION)); } if (toolboxFactory.hasTools(Scope.SESSION)) { vtc.addToolbox(toolboxFactory.createToolbox(Scope.SESSION)); } } return vtc; }}
重写后,在applicationContext.xml文件中配置viewClass,如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver"> <property name="suffix" value=".html" /> <property name="cache" value="false" /> <property name="contentType" value="text/html;charset=utf-8" /> <!-- 日期函数名称 --> <property name="dateToolAttribute" value="date" /> <!-- 数字函数名称 --> <property name="numberToolAttribute" value="number" /> <property name="layoutUrl" value="layout/default.vm" /> <property name="viewClass" value="com.acs.survey.util.VelocityLayoutToolbox2View" /> <property name="toolboxConfigLocation" value="/WEB-INF/velocity-tools.xml" /> </bean>
2、Velocity Tools 2.0的配置文件格式和低版本的不同,这是个大坑!!!具体如下:
===低版本格式
<toolbox> <tool> <key>SSOPermission</key> <scope>application</scope> <class>com.baomidou.springwind.common.SSOPermissionTool</class> </tool> <tool> <key>date</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.DateTool</class> </tool> <tool> <key>math</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.MathTool</class> </tool> <tool> <key>number</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.NumberTool</class> </tool> <tool> <key>render</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.RenderTool</class> </tool> <tool> <key>esc</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.EscapeTool</class> </tool> <tool> <key>alternator</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.AlternatorTool</class> </tool> <tool> <key>parser</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.ValueParser</class> </tool> <tool> <key>sorter</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.SortTool</class> </tool></toolbox>
===2.0格式
<tools> <toolbox scope="application"> <tool class="com.acs.survey.util.PermissionTool" /> <tool class="org.apache.velocity.tools.generic.DateTool" /> <tool class="org.apache.velocity.tools.generic.MathTool" /> <tool class="org.apache.velocity.tools.generic.NumberTool" /> <tool class="org.apache.velocity.tools.generic.RenderTool" /> <tool class="org.apache.velocity.tools.generic.EscapeTool" /> <tool class="org.apache.velocity.tools.generic.AlternatorTool" /> <tool class="org.apache.velocity.tools.generic.ValueParser" /> <tool class="org.apache.velocity.tools.generic.SortTool" /> </toolbox> <toolbox scope="request"> <tool class="org.apache.velocity.tools.view.LinkTool" /> </toolbox></tools>
0 0
- Spring MVC 4.0 + Velocity Tools 2.0遇到的问题
- spring 3+velocity tools 2.0
- Spring mvc 3.0 怎么配置velocity tools (dateTool/numberTool)?
- spring 3.0.5+velocity tools 2.0
- 用velocity遇到的问题
- Spring 国际化的支持:Spring MVC Velocity
- spring mvc 遇到的奇怪问题
- Spring Mvc Demo遇到的问题
- 使用spring mvc遇到的问题
- Spring Mvc开发遇到的问题汇总
- Spring MVC 遇到的问题集合
- 使用最新的spring-tools-suit3.8.3遇到启动问题
- Spring MVC+Maven+Velocity的配置过程
- Spring MVC的velocity视图技术
- Spring MVC 整合Velocity
- Spring MVC 集成 Velocity
- spring mvc 整合 velocity
- spring mvc整合velocity
- delphi字符unicode编码后与webservice通过json通讯
- PostgreSQL 入门
- 750B New Year and North Pole
- IP网络安全可信技术西电捷通TISec技术 让TCP/IP协议更安全
- 机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size
- Spring MVC 4.0 + Velocity Tools 2.0遇到的问题
- spring mvc集锦
- 自定义PHP数组类的实现
- Dijkstra
- spring 三种注入方式
- Linux下安装sublime和chrome
- js 打印divdemo
- mysql ALTER 语句用法,添加、修改、删除字段等
- POI 导出word