eclipse中整合springMvc和velocity

1.项目所需要的jar包(有些可能多余)

2.在src目录下创建一个bean  一个一个controller ,路径如下

person代码:

package com.test.bean;

import java.util.Date;

public class Person {

    private int id;

    private String name;

    private String password;

    private int age;

    private Date birthday;

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

IndexController代码:

package com.test.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.test.bean.Person;

public class IndexController implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        ModelAndView mav = new ModelAndView();
        
        Person p1 = new Person();
        p1.setId(1);
        p1.setName("胡楠");
        p1.setPassword("123456");
        p1.setAge(24);
        p1.setBirthday(new Date());
        
        List<Person> list = new ArrayList<Person>();
        for(int i=0;i<10;i++){
            Person p = new Person();
            p.setId(1000+i);
            p.setName("胡楠"+i);
            p.setPassword("123456"+i);
            p.setAge(24+i);
            p.setBirthday(new Date());
            list.add(p);
        }
        //集合
        mav.addObject("persons", list);
        //对象
        mav.addObject("person",p1);
        //request范围数据
        request.setAttribute("requestData", "hunan");
        //session范围数据
        request.getSession().setAttribute("sessionData", "123456");
        return mav;
    }

}

3.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
 <servlet>  
  <servlet-name>mvc</servlet-name>  
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  <load-on-startup>1</load-on-startup>  
 </servlet>  
 <servlet-mapping>  
   <servlet-name>mvc</servlet-name>  
   <url-pattern>*.vm</url-pattern>  
 </servlet-mapping>  
 <welcome-file-list>  
  <welcome-file>index.jsp</welcome-file>  
 </welcome-file-list>  
 <login-config>  
  <auth-method>BASIC</auth-method>  
 </login-config>  
</web-app> 

4.配置servlet name 为 mvc 对应的 mvc-servlet.xml

<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
    </bean>
    <!-- VelocityConfigurer 视图的配置 -->
    <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer" p:resourceLoaderPath="/view"><!-- 加载视图的路径 -->
       <property name="velocityProperties">
          <props>
            <prop key="directive.foreach.counter.name">loopCounter</prop>
            <prop key="directive.foreach.counter.initial.value">0</prop>
            <prop key="input.encoding">UTF-8</prop>
            <prop key="output.encoding">UTF-8</prop>
          </props>
        </property>
    </bean>
    <!-- VelocityViewResolver 视图的解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"
     p:suffix=".vm" p:contentType="text/html; charset=UTF-8" p:exposeRequestAttributes="true" p:exposeSessionAttributes="true" p:dateToolAttribute="dateTool" p:numberToolAttribute="numberTool"/>  
    <bean name="/index.vm" class="com.test.controller.IndexController"/>
</beans>

5.在WebContent下创建view文件夹,在里面创建.vm文件 index.vm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    显示对象的属性
    <br> $person.id
    <br> $person.name
    <br> $person.password
    <br> $person.age
    <br> if语句
    <br> #if($person.id <2) id大于2 #else id小于2 #end
    #if($person.password=="123456") 密码等于123456 #end
    <hr>
    foreach语句
    <br> #foreach($p in $persons) $p.id
    <br> $p.name
    <br> $!p.email
    <br> $dateTool.format("yyyy-MM-dd HH:mm:ss", $p.birthday)
    <br> #end
    <hr>
    request范围数据
    <br> $requestData
    <br> session范围数据
    <br> $sessionData
    <br>
</body>
</html>

index.vm里面有一些velocity标签的部分用法

项目完毕,部署到tomcat运行 http://localhost:8082/TestSpringVelocity/index.vm

部分代码来自于http://hunan.iteye.com/blog/838657

原文地址:https://www.cnblogs.com/cuiyf/p/3338643.html