Spring MVC and Velocity Tutorial 入门
来源:互联网 发布:终端创建数据库 编辑:程序博客网 时间:2024/06/02 06:35
原址:点击打开链接
参考:Velocity模板(VM)语言介绍
1- Introduction
Spring MVC 4
Eclipse 4.4 (Luna)
Apache Velocity is a Java-based template engine that provides a template language to reference objects defined in Java code. It aims to ensure clean separation between the presentation tier and business tiers in a Web application (the model–view–controller design pattern).
Velocity is an open source software project hosted by the Apache Software Foundation. It is released under the Apache License.
Velocity is an open source software project hosted by the Apache Software Foundation. It is released under the Apache License.
2- Create Project
- File/New/Other...
Enter:
- Group Id: org.o7planning
- Artifact Id: SpringMVCVelocity
- Package: org.o7planning.tutorial.springmvcvelocity
Project was created:
Do not worry with the error message when Project has been created. The reason is that you have not declared Servlet library.
Note:
Eclipse 4.4 (Luna) create Maven project structure may be wrong. You need to check.
Eclipse 4.4 (Luna) create Maven project structure may be wrong. You need to check.
3- Configure maven
pom.xml
<span style="color:#333333;"><projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.o7planning</groupId> <artifactId>SpringMVCVelocity</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringMVCVelocity Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Spring framework START --> <!--http://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!--http://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!--http://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- contains: VelocityEngineFactory --> <!--http://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- Spring framework END --> <!-- Servlet API --> <!--http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!--http://mvnrepository.com/artifact/org.apache.velocity/velocity --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <!--http://mvnrepository.com/artifact/org.apache.velocity/velocity-tools --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version> </dependency> </dependencies> <build> <finalName>SpringMVCVelocity</finalName> <plugins> <!-- Config: Maven Tomcat Plugin --> <!--http://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <!-- Config: contextPath and Port (Default - /SpringMVCVelocity : 8080) --> <!-- <configuration> <path>/</path> <port>8899</port> </configuration> --> </plugin> </plugins> </build> </project></span>
4- Configure Spring
web.xml
<web-appid="WebApp_ID"version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- Other XML Configuration --> <!-- Load by Spring ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/root-context.xml, /WEB-INF/spring-mvc-servlet.xml </param-value> </context-param> <!-- Spring ContextLoaderListener --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
spring-mvc-servlet.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" 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-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!-- Register the annotated components in the container eg : annotated controllers --> <context:component-scanbase-package="org.o7planning.tutorial.springmvcvelocity.*"/> <!-- Tell the container that we are going to use annotations --> <context:annotation-config/> <beanid="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <propertyname="resourceLoaderPath"> <value>/</value> </property> </bean> <beanid="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver"> <propertyname="cache"value="true"/> <propertyname="prefix"value="/WEB-INF/views/"/> <propertyname="layoutUrl"value="/WEB-INF/layouts/layout.vm"/> <propertyname="suffix"value=".vm"/> </bean> </beans>
root-context.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Empty --> </beans>
5- Views
/WEB-INF/fragments/_header.vm
<divstyle="background: #E0E0E0; height: 80px; padding: 5px;"> <divstyle="float: left"> <h1>My Site</h1> </div> <divstyle="float: right; padding: 10px;"> Search <inputname="search"> </div></div>
/WEB-INF/fragments/_footer.vm
<div style="background: #E0E0E0; text-align: center; padding: 5px; margin-top: 10px;"> @Copyright mysite.com</div>
/WEB-INF/layouts/layout.vm
<html><head> <title>Spring & Velocity</title> </head><body> <div> #parse("/WEB-INF/fragments/_header.vm") </div> <div> <!-- View abc.vm is inserted here --> <!-- Noi dung View abc.vm se duoc tren tai day --> $screen_content </div> <div> #parse("/WEB-INF/fragments/_footer.vm") </div></body></html>
The $screen_content variable is used by the VelocityLayoutViewResolver to include the result of an other VM in the layout
/WEB-INF/views/index.vm
<h1>Index</h1> <h2>Department list</h2><tableborder="1"><tr> <th>Dept No</th> <th>Dept Name</th></tr>#foreach($dept in $departments) <tr> <td>$dept.deptNo</td> <td>$dept.deptName</td> </tr>#end</table>
6- Java Classes
Department.java
package org.o7planning.tutorial.springmvcvelocity.model; public class Department { private Integer deptId; private String deptNo; private String deptName; private String location; public Department() { } public Department(Integer deptId, String deptName, String location) { this.deptId = deptId; this.deptNo = "D" + deptId; this.deptName = deptName; this.location = location; } public Integer getDeptId() { return deptId; } public void setDeptId(Integer deptId) { this.deptId = deptId; } public String getDeptNo() { return deptNo; } public void setDeptNo(String deptNo) { this.deptNo = deptNo; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; }}
DepartmentService.java
package org.o7planning.tutorial.springmvcvelocity.model; import java.util.ArrayList;import java.util.List; import org.springframework.stereotype.Service; @Servicepublic class DepartmentService { public List<Department> listDepartment() { List<Department> list = new ArrayList<Department>(); list.add(new Department(1, "Operations", "Chicago")); list.add(new Department(2, "HR", "Hanoi")); return list; }}
The classes annotated by @Controller or @Service be regarded as the Bean, and Spring will automatically inject dependencies in the Field annotated by @Autowired annotation.
MainController.java
package org.o7planning.tutorial.springmvcvelocity.controller; import java.util.List; import org.o7planning.tutorial.springmvcvelocity.model.Department;import org.o7planning.tutorial.springmvcvelocity.model.DepartmentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod; @Controllerpublic class MainController { @Autowired private DepartmentService deptService; @RequestMapping(value = { "/", "/welcome" }, method = RequestMethod.GET) public String welcomePage(Model model) { List<Department> list = deptService.listDepartment(); model.addAttribute("departments", list); return "index"; }}
7- Run Application
In the first, before running the application you need to build the entire project.
Right-click the project and select:
Run configurations:
Enter:
- Name: Run SpringMVCVelocity
- Base directory: ${workspace_loc:/SpringMVCVelocity}
- Goals: tomcat7:run
Click Run:
- http://localhost:8080/SpringMVCVelocity/
0 0
- Spring MVC and Velocity Tutorial 入门
- Spring MVC with ParameterizableViewController Tutorial and Example
- Spring MVC 整合Velocity
- Spring MVC 集成 Velocity
- spring mvc 整合 velocity
- spring mvc整合velocity
- Spring MVC整合Velocity
- Spring MVC 集成 Velocity
- Spring MVC配置Velocity
- spring mvc velocity使用
- Spring MVC整合Velocity
- spring mvc +velocity
- Spring MVC整合Velocity
- spring mvc+velocity+maven
- Spring MVC 集成Velocity
- Spring MVC Framework Tutorial
- Spring mvc框架tutorial
- Spring MVC 与 Velocity 整合
- ANDROID如何在相册中准确的拿到路径(因为有的手机会有最近这个有的会出现bug)
- 指针
- 欢迎使用CSDN-markdown编辑器
- MySQL索引基础
- android适配遇到的一些问题
- Spring MVC and Velocity Tutorial 入门
- 数据挖掘算法与现实生活中的应用案例
- VB函数Time和Timer的区别
- AES加密以及BASE64编码
- 初始xml(一)
- 分享和第三方登录
- c++ STL学习之stack堆栈总结
- Unity Puppet2D插件使用指南
- Redis.conf中配置全面说明