velocity是一个基于java的模板引擎。velocity应用于web开发时,前端设计人员可以只关注页面的显示效果,而java程序人员只关注业务逻辑代码。velocity将java代码从web页面中分离出来。

当然velocity还有其他用途,例如,它可以从模板中产生SQL和POSTScript、xml,它也可以被当做一个独立工具产生源码和报告。

我们公司就是用velocity来产生ibatis所有的sql-mapper配置文件,dao文件,避免做重复工作,为我们节省了很多开发时间。

好,下面开始。

  • 首先在eclipse中建立一个maven工程,在骨架选择中选择maven-archetype-webapp新建一个web骨架的简单项目

  • 然后在pom文件中引入相关的依赖

<properties>
        <!-- velocity -->
        <velocity.version>1.7</velocity.version>
        <velocityTools.version>2.0</velocityTools.version>
</properties>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-tools</artifactId>
    <version>${velocityTools.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>${velocity.version}</version>
</dependency>
  • spring-mvc配置文件,

    在src/main/resources下建立一个spring目录,新建一个文件:spring-mvc.xml

    这个文件放在这个目录下。

    配置文件里内容是:配置一个注解扫描的包,一个velocity解析器,一个velocity配置

    直接上了:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 使用注解的包,包括子集 -->
    <context:component-scan base-package="com.bench.app.ebuy" />

    <!-- velocity视图解析器 -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="contentType" value="text/html;charset=UTF-8" />
        <property name="suffix" value=".vm" />
    </bean>

    <!-- velocity配置 -->
    <bean id="velocityConfigurer"
        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <property name="resourceLoaderPath">
            <value>WEB-INF/velocity/</value>
        </property>
        <property name="velocityProperties">
            <props>
                <prop key="input.encoding">UTF-8</prop>
                <prop key="output.encoding">UTF-8</prop>
                <prop key="contentType">text/html;charset=UTF-8</prop>
                <prop key="velocimacro.library">macro/macros.vm</prop>
            </props>
        </property>
    </bean>
</beans>

注意:注解扫描里面,需要配置你自己建的包

velocity配置里面,有一个配置是resourceLoaderPath,所有的vm文件都是放在这个目录下,所有你需要在WEB-INF下,建立一个velocity目录。

还有一个配置是velocimacro.library这里是velocity宏配置

  • 配置web.xml

    这里是一个DispatchServlet分发器配置和一个filter,用来解决乱码的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>ebuy</display-name>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>
</web-app>
  • 然后建立四个包

    controller,dao,model,service

    在controller下写一个类DemoControler,
/**
 * 测试控制器
 * @author
 *
 */
@Controller
public class DemoController {

    @RequestMapping("/toNewPage.do")
    public String doGet() {
        return "newPage";
    }
}

并且在velocity目录下新建一个文件,newPage.vm。运行在tomcat里,访问

http://localhost:8080/ebuy/toNewPage.do 如果跳到相应的页面,说明成功了。

最新文章

  1. python os.path模块
  2. Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
  3. JVM内存结构---《深入理解Java虚拟机》学习总结
  4. Spring 核心概念以及入门教程
  5. php笔试题(3)--转载
  6. HDU 5651 xiaoxin juju needs help (组合数)
  7. iOS:详细的正则表达式
  8. jQuery学习备忘
  9. Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)
  10. [置顶] C# WINCE调节屏幕亮度
  11. YUV420格式解析
  12. React Native 之极光推送jpush-react-native 手把手配置
  13. css3动画和animate.css动画库使用
  14. 爬虫基础(四)-----MongoDB的使用
  15. Lua 函数链功能
  16. activiti 快速入门--组任务(candidate users)分配(6)
  17. no matching editors or conversion strategy found
  18. nginx重新编译添加ssl模块
  19. 我应该直接学 Swift,还是 Objective-C?
  20. Golang之beego读取配置信息,输出log模块

热门文章

  1. 编写C# Windows服务,用于杀死Zsd.exe进程
  2. PHP之intval()
  3. ISO14443-4块传输协议的实现
  4. 【Linux】鸟哥的Linux私房菜基础学习篇整理(十二)
  5. [GDKOI2016]小学生数学题
  6. Controlling How NSThread and NSRunLoop Exit
  7. URAL 1081
  8. Java中List转换为数组,数组转List
  9. TestNG 与 Junit的比较(转)
  10. AutoCompleteTextView ArrayAdapter