`

spring mvc整合velocity

 
阅读更多

Spring mvc和velocity都是当前流行的框架,在我当前的项目中就用到了这两个框架,在搭建的过程中,虽然对于配置的步骤及使用的过程都比较清楚,但是要没有任何参照一下写出所有的配置记住所有的配置类名等,还是不大可能做到的,本文将讲解spring mvc和velocity的整合步骤,顺便做一下备忘。

web.xml配置,这里只讲mvc部分,不包含spring本身的配置:

  1. <servlet>
  2. <servlet-name>springmvc</servlet-name>
  3. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  4. <init-param>
  5. <param-name>contextConfigLocation</param-name>
  6. <param-value>classpath:spring-mvc.xml</param-value>
  7. <description>加载Spring MVC的配置文件</description>
  8. </init-param>
  9. <load-on-startup>1</load-on-startup>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>springmvc</servlet-name>
  13. <url-pattern>*.shtml</url-pattern>
  14. </servlet-mapping>

这样,所有的*.shtml的请求,都会被springmvc这个servlet处理。这里如果没有指定contextConfigLocation这个参数,将会按照默认规则在classpath下寻找名称为{servlet-name}-servlet.xml的配置文件。

在spring-mvc.xml文件中对spring mvc和velocity进行配置:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  7.  
  8. <context:component-scanbase-package="com.tyyd.dw.controller"/>
  9. <mvc:annotation-driven/>
  10.  
  11. <beanid="velocityConfig"class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
  12. <propertyname="resourceLoaderPath"value="/WEB-INF"/>
  13. <propertyname="configLocation"value="classpath:velocity.properties"/>
  14. </bean>
  15.  
  16. <beanid="viewResolver"class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
  17. <propertyname="suffix"value=".vm"/>
  18. <propertyname="prefix"value="/"/>
  19. <!-- 使用springMacro的对象 -->
  20. <propertyname="exposeSpringMacroHelpers"value="true"/>
  21. <propertyname="requestContextAttribute"value="content"/>
  22. <propertyname="exposeRequestAttributes"value="true"/>
  23. <propertyname="exposeSessionAttributes"value="true"/>
  24. <propertyname="contentType"value="text/html;charset=UTF-8"/>
  25. <!-- spring的日期格式化 -->
  26. <propertyname="dateToolAttribute"value="dateTool"/>
  27. <!-- velocity toolbox -->
  28. <propertyname="toolboxConfigLocation"value="/WEB-INF/toolbox.xml"/>
  29. </bean>
  30. </beans>

 

当然也支持layout,只需要把上面的velocity的解析器改为:

  1. org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver

 

并增加属性指定layout文件:

  1. <propertyname="layoutUrl"value="layout.vm"/>

 

这里要注意layout用到的vm文件需要放到classpath路径而不是webroot,不然会找不到文件。

在视图解析器的定义中,

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

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

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

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

在velocity.properties中配置velocity的属性:

  1. #velocimacro.library = /WEB-INF/templates/common/page.vm,/WEB-INF/templates/common/global_library.vm
  2. tools.view.servlet.layout.directory =/WEB-INF/templates/layout/
  3. tools.view.servlet.layout.default.template=default.vm
  4. default.contentType=text/html;charset=utf-8
  5. input.encoding = UTF-8
  6. output.encoding = UTF-8
  7. class.resource.loader.cache=false
  8. velocimacro.library.autoreload=true
  9. directive.set.null.allowed =true
  10. runtime.log.error.stacktrace =true
  11. runtime.log.warn.stacktrace =true
  12. runtime.log.info.stacktrace =true
  13. runtime.log.logsystem.class= org.apache.velocity.runtime.log.SimpleLog4JLogSystem
  14. runtime.log.logsystem.log4j.category = velocity_log

这些属性也可以通过org.springframework.web.servlet.view.velocity.VelocityConfigurer类在spring的配置文件中进行配置,不推荐用这种方式,这里就不再列出。

在WEB-INF下建立toolbox文件,按需添加工具类对象:

  1. <?xml version="1.0"?>
  2. <toolbox>
  3. <tool>
  4. <key>date</key>
  5. <scope>request</scope>
  6. <class>
  7. org.apache.velocity.tools.generic.DateTool
  8. </class>
  9. <parametername="format"value="yyyy-MM-dd HH:mm:ss"/>
  10. </tool>
  11. <tool>
  12. <key>link</key>
  13. <scope>request</scope>
  14. <class>org.apache.velocity.tools.view.tools.LinkTool</class>
  15. </tool>
  16. <tool>
  17. <key>stringUtils</key>
  18. <scope>request</scope>
  19. <class>org.apache.velocity.util.StringUtils</class>
  20. </tool>
  21. <tool>
  22. <key>math</key>
  23. <scope>application</scope>
  24. <class>org.apache.velocity.tools.generic.MathTool</class>
  25. </tool>
  26. <tool>
  27. <key>esc</key>
  28. <scope>request</scope>
  29. <class>org.apache.velocity.tools.generic.EscapeTool</class>
  30. </tool>
  31. <tool>
  32. <key>params</key>
  33. <scope>request</scope>
  34. <class>org.apache.velocity.tools.view.tools.ParameterParser</class>
  35. </tool>
  36. </toolbox>

至些,整合算是完成了。没错,就是这么的简单,接下来你就可以创建一个Controller来测试使用了。

示例Controller:

  1. @Controller
  2. publicclassLoginController{
  3. @RequestMapping(value ="login", method =RequestMethod.GET)
  4. publicString login(){
  5. return"login";
  6. }
  7. }

定义了一个login的Controller,当访问{项目路径}/login.shtml时,将进入login()方法,该方法返回字符串“login”将自动在WEB-INF目录下找寻login.vm页面文件,找到后将跳转到该页面。

分享到:
评论

相关推荐

    spring mvc与velocity整合

    总的来说,Spring MVC与Velocity的整合使得开发者可以利用Spring MVC的强大功能来处理业务逻辑,同时利用Velocity的简洁模板语法来设计前端页面,两者结合提供了高效且易于维护的Web应用解决方案。

    spring mvc sitemesh velocity整合

    在本项目中,Spring MVC与两个额外的技术——Sitemesh和Velocity进行了整合,增强了应用的模板渲染和页面布局能力。 Sitemesh 是一个开源的Web应用装饰器框架,主要用于统一网站的页面布局和样式。通过Sitemesh,...

    Maven + Spring mvc + Mybatis + Velocity 整合实例

    本示例提供了一个基于Maven、Spring MVC、Mybatis和Velocity的整合实例,旨在帮助开发者理解并掌握这四大技术栈的协同工作方式。这四个组件在Java Web开发中扮演着至关重要的角色: 1. Maven:Maven是一款项目管理...

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    本实例将探讨如何使用Maven作为项目管理工具,结合Spring MVC作为控制层框架,Mybatis作为数据访问层框架,以及Velocity作为视图层模板引擎,来构建一个完整的Java Web应用。以下是关于这些技术的详细解释和整合步骤...

    velocity jsp多视图解析器整合

    Spring MVC整合Velocity和JSP** Spring MVC是一个强大的MVC框架,它提供了灵活的视图解析机制。要整合Velocity和JSP,我们需要在Spring配置中添加对应的视图解析器: - **VelocityViewResolver**: 这是Spring MVC...

    Spring MVC+Maven+Velocity配置实例

    将Spring MVC、Maven和Velocity整合在一起,首先需要在Maven的POM.xml文件中添加相应的依赖。对于Spring MVC,你需要添加spring-webmvc依赖;对于Velocity,需要添加velocity-engine-core和velocity-tools-view。...

    Spring mvc+mybatis+maven+velocity+mysql整合实例

    本篇文章将通过一个简单显示用户信息的实例整合Spring mvc+mybatis+Maven+velocity+mysql. 一、.Maven工程目录 二、Spring mvc + mybatis +maven实现 1.Mysql数据库表数据

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 demo

    本示例项目" Maven + Spring MVC + Mybatis + Velocity + 国际化配置 Demo"提供了一种实用的方法来实现这一目标。以下将详细讲解这个整合实例中的各个关键组件及其相互作用。 1. Maven:Maven 是一个项目管理工具,...

    maven+spring mvc+hibernate+dubbo+velocity+mysql的demo源码

    在本项目中,Maven负责下载并管理所有依赖库,如Spring MVC、Hibernate、Dubbo等,同时执行编译、测试、打包等构建任务。 2. Spring MVC: Spring MVC是Spring框架的一个模块,用于构建Web应用程序。它提供了模型-...

    spring3.0 mvc中文实例教程

    7. **Spring3 MVC与Hibernate 3整合**:讲解如何结合Spring MVC和Hibernate进行持久化操作。 通过这些教程,开发者可以全面了解和掌握Spring 3.0 MVC框架,从而在实际项目中灵活运用,构建出高效、可靠的Web应用。

    Spring-MVC框架简单实现

    **Spring MVC 框架简单实现** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个简易版框架中,我们将深入理解 Spring MVC 的核心概念和关键组件。 **1. ...

    spring-mvc-velocity-bootstrap

    **Spring MVC + Velocity + Bootstrap 整合应用详解** 在当今的Web开发领域,Spring MVC、Velocity和Bootstrap是三个非常重要的工具。Spring MVC是Spring框架的一部分,用于构建强大的、灵活的Web应用程序;...

    activiti+spring+srping Mvc+mybatis+maven整合

    3. 集成Spring MVC:配置Spring MVC的DispatcherServlet,定义视图解析器,如Velocity或Thymeleaf,以及处理程序映射器和适配器。 4. 配置Activiti:在Spring配置文件中添加Activiti的工厂bean,设置数据库连接信息...

    SpringMVC3+velocity最简单配置例子

    1. **添加依赖**: 在项目中引入SpringMVC和Velocity的相关库,通常包括`spring-webmvc`和`velocity`或者`velocity-tools`。 2. **配置SpringMVC**: 配置`DispatcherServlet`,指定处理器映射器、视图解析器等。对于...

    springmvc必备架包_hui

    7. **视图技术**:Spring MVC 支持多种视图技术,如 JSP、Thymeleaf、FreeMarker、Velocity 等,允许开发者选择最适合项目的视图解决方案。 8. **注解驱动开发**:Spring MVC 允许使用注解(如 @RequestMapping、@...

    spring MVC中文教程.pdf

    在Spring的高级特性中,Web应用与MVC模式是紧密相关的,Spring MVC为开发者提供了指南,它不仅仅支持传统的JSP和Servlet技术,还包括了基于模板的Web表示层技术,如FreeMarker、Velocity、Thymeleaf等,这些技术可以...

    springmvc4+hibernate4+velocity1.7jar包

    Spring MVC、Hibernate和Velocity的整合主要体现在以下方面: 1. **数据访问**:Spring MVC可以通过Hibernate的SessionFactory和Session接口进行数据持久化操作,Spring提供了声明式事务管理,简化了事务控制。 2. ...

    Spring MVC教程.docx

    13. **Ajax 支持**:Spring MVC 提供了处理 Ajax 请求的能力,可以轻松地将异步数据更新整合到你的应用中。 综上所述,Spring MVC 提供了一个完整的框架,用于构建高效、可维护的 Web 应用程序。开发者只需关注业务...

    springmvc+mybatis+velocity整合实例

    整合Spring MVC、MyBatis和Velocity,首先需要在项目的pom.xml文件中引入这三个框架的依赖。然后,配置Spring的ApplicationContext.xml,定义DataSource、SqlSessionFactoryBean、MapperScannerConfigurer等,以连接...

    Spring mvc3 tiles

    **Spring MVC 3 与 Tiles 框架整合** 在Web开发中,Spring MVC和Tiles是两个非常重要的组件。Spring MVC作为一个强大的MVC框架,负责处理应用的业务逻辑和视图展示,而Tiles则是一个视图层框架,主要用于页面布局和...

Global site tag (gtag.js) - Google Analytics