1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程。

2 文件目录结构如下图所示

3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>mavenspringmvcfreemarker</groupId>
  5. <artifactId>mavenspringmvcfreemarker</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <name>mavenspringmvcfreemarker</name>
  9. <description />
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.freemarker</groupId>
  16. <artifactId>freemarker</artifactId>
  17. <version>2.3.20</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-context-support</artifactId>
  22. <version>3.2.9.RELEASE</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework</groupId>
  26. <artifactId>spring-web</artifactId>
  27. <version>3.2.9.RELEASE</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-webmvc</artifactId>
  32. <version>3.2.9.RELEASE</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>javax</groupId>
  36. <artifactId>javaee-api</artifactId>
  37. <version>7.0</version>
  38. <scope>provided</scope>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.glassfish.web</groupId>
  42. <artifactId>javax.servlet.jsp.jstl</artifactId>
  43. <version>1.2.2</version>
  44. </dependency>
  45. </dependencies>
  46. <build>
  47. <plugins>
  48. <plugin>
  49. <artifactId>maven-compiler-plugin</artifactId>
  50. <version>2.3.2</version>
  51. <configuration>
  52. <source>1.7</source>
  53. <target>1.7</target>
  54. </configuration>
  55. </plugin>
  56. <plugin>
  57. <artifactId>maven-war-plugin</artifactId>
  58. <version>2.2</version>
  59. <configuration>
  60. <version>3.1</version>
  61. <failOnMissingWebXml>false</failOnMissingWebXml>
  62. </configuration>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. </project>

4 web.xml中的完整内容为

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  3. <display-name>mavenspringmvcfreemarker</display-name>
  4. <servlet>
  5. <servlet-name>spring</servlet-name>
  6. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  7. <load-on-startup>1</load-on-startup>
  8. </servlet>
  9. <servlet-mapping>
  10. <servlet-name>spring</servlet-name>
  11. <url-pattern>/</url-pattern>
  12. </servlet-mapping>
  13. </web-app>

spring-servlet.xml中的完整内容为:

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  3. xsi:schemaLocation="http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/context
  6. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  7. <context:component-scan base-package="com.demo" />
  8. <bean
  9. class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  10. <bean
  11. class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  12. <!-- 配置Freemarker属性文件路径 -->
  13. <bean id="freemarkerConfiguration"
  14. class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  15. <property name="location" value="classpath:conf/freemarker.properties" />
  16. </bean>
  17. <!-- 配置freeMarker模板加载地址 -->
  18. <bean id="freemarkerConfig"
  19. class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  20. <!-- 视图解析器在/WEB-INF/ftl/路径下扫描视图文件 -->
  21. <property name="templateLoaderPath" value="/WEB-INF/ftl/" />
  22. <property name="freemarkerVariables">
  23. <map>
  24. <entry key="xml_escape" value-ref="fmXmlEscape" />
  25. </map>
  26. </property>
  27. </bean>
  28. <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
  29. <!-- 配置freeMarker视图解析器 -->
  30. <bean id="freemakerViewResolver"
  31. class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  32. <property name="viewClass"
  33. value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
  34. <!-- 扫描路径內所有以ftl結尾的文件 -->
  35. <property name="viewNames">
  36. <array>
  37. <value>*.ftl</value>
  38. </array>
  39. </property>
  40. <property name="contentType" value="text/html; charset=UTF-8" />
  41. <property name="exposeRequestAttributes" value="true" />
  42. <property name="exposeSessionAttributes" value="true" />
  43. <property name="exposeSpringMacroHelpers" value="true" />
  44. <property name="requestContextAttribute" value="request" />
  45. <!-- 给视图解析器配置优先級,你可以给之前jsp视图解析器的值配为2 -->
  46. <property name="order" value="1" />
  47. </bean>
  48. </beans>

注意:web.xml中,有个<servlet-name>为spring,所以这个文件起名为spring-servlet.xml。这样,程序自动会去加载spring-servlet.xml。也就说<xxx>-servlet.xml中的<xxx>必须与<servlet-name>的值完全对应。

不对应当然也可以,但是要在web.xml中显示指定加载。

比如:把spring-servlet.xml改名为applicationContext.xml,则要在web.xml中的</servlet-class>下方加代码:

  1. <init-param>
  2. <param-name>contextConfigLocation</param-name>
  3. <param-value>/WEB-INF/applicationContext.xml</param-value>
  4. </init-param>

6 freemarker.properties中的完整内容为

  1. tag_syntax=auto_detect
  2. template_update_delay=2
  3. default_encoding=UTF-8
  4. output_encoding=UTF-8
  5. locale=zh_CN
  6. date_format=yyyy-MM-dd
  7. time_format=HH:mm:ss
  8. datetime_format=yyyy-MM-dd HH\:mm\:ss

7 StudentController.java中的完整代码为:

  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.ui.Model;
  5. @Controller
  6. public class StudentController {
  7. @RequestMapping("/helloWorld")
  8. public String helloWorld(Model model) {
  9. String word0 = "Hello ";
  10. String word1 = "World!";
  11. //将数据添加到视图数据容器中
  12. model.addAttribute("word0",word0);
  13. model.addAttribute("word1",word1);
  14. return "Hello.ftl";
  15. }
  16. }

8 Hello.ftl中的完整代码为:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <h2>${word0}${word1}</h2>
  9. </body>
  10. </html>

9 将mavenspringmvcfreemarker添加进Tomcat 7中并运行

在浏览器中输入

http://localhost:8080/mavenspringmvcfreemarker/helloWorld

显示结果为

10 源码下载地址

CSDN:http://download.csdn.net/detail/haishu_zheng/9533679

Github:https://github.com/zhenghaishu/Maven-SpringMVC-Freemarker-Demo

Maven+SpringMVC+Freemarker入门Demo的更多相关文章

  1. Freemarker入门Demo

    1:工程引入依赖 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemark ...

  2. IntelliJ IDEA下Maven SpringMVC+Mybatis入门搭建例子

    很久之前写了一篇SSH搭建例子,由于工作原因已经转到SpringMVC+Mybatis,就以之前SSH实现简单登陆的例子,总结看看SpringMVC+Mybatis怎么实现. Spring一开始是轻量 ...

  3. Maven+SpringMVC+Dubbo 简单的入门demo配置

    转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...

  4. 170328、Maven+SpringMVC+Dubbo 简单的入门demo配置

    之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息.最近有时间了,打算做一个demo把dubbo在本地跑起来先. 先copy一段dubbo ...

  5. SpringMVC整合Freemarker(含Demo源码)(转)

    转自:http://blog.csdn.net/sinat_27535209/article/details/61199452 整合过程如下: 1.新建一个maven web工程,使用maven依赖s ...

  6. Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)

    Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomc ...

  7. SpringMVC框架入门配置 IDEA下搭建Maven项目(zz)

    SpringMVC框架入门配置 IDEA下搭建Maven项目 这个不错哦 http://www.cnblogs.com/qixiaoyizhan/p/5819392.html

  8. SpringMVC框架入门配置 IDEA下搭建Maven项目

    初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...

  9. [转]SpringMVC框架入门配置 IDEA下搭建Maven项目

    初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...

随机推荐

  1. 【转载】开发者眼中的Spring与Java EE

    转载自:http://www.infoq.com/cn/news/2015/07/spring-javaee 在Java社区中,Spring与Java EE之争是个永恒的话题.在这场争论中,来自两个阵 ...

  2. NodeJs中使用jQuery?

    在NodeJs中使用jQuery? 有时候在项目中需要使用jq在node中,但是使用起来却不是那么友好,那么现在该怎么做?改写JQ插件?将JQ插件打包成npm包,再在项目中进行引用?显然这些相比较于难 ...

  3. 前端读者 | 如何判断Javascript对象是否存在

    本文来自@阮一峰 Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言 ...

  4. 六十六 aiohttp

    asyncio可以实现单线程并发IO操作.如果仅用在客户端,发挥的威力不大.如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多 ...

  5. Django常用内置过滤器

    1.add 此过滤器将首先尝试将两个值强制为整数.如果失败,它会尝试将值一起添加.这将工作在一些数据类型(字符串,列表等)和失败在其他人.如果失败,结果将是一个空字符串. {{ value | add ...

  6. 在web项目中发布jaxws

    概述 在web项目中发布基于jaxws的webservice. 参考文章:用JAX-WS在Tomcat中发布WebService 参考文章说,如果不是servlet3.0及以上,需要配置servlet ...

  7. Knockout.js(二):监控数组属性(Observables Arrays)

    如果想发现并响应一个对象的变化,就应该使用监控属性(observables),如果想发现并响应一个集合的变化,就需要使用监控属性数组(observableArray).在很多情况下,它都非常有用,比如 ...

  8. 浅谈OI中的提交答案

    在OI中,题目有三类: 传统题 交互题 提交答案题 今天来了解一下第三类 概述 传统题:给你一个题面,你需要交一个程序,评测姬会用你的程序运行你看不到的一些测试点,用输出和正确答案比较 提交答案题:给 ...

  9. echarts 关系图graph force布局 拖动节点并固定不返回原点

    myChart.on('mouseup',function(params){var option=myChart.getOption();option.series[0].nodes[params.d ...

  10. hibernate双向ManyToMany映射

    工作需要一个双向多对多映射,照着李刚的书做了映射,碰到了一些问题,现就问题及解决方案进行总结归纳. 1.首先奉上最初代码 Person5.java @Entity @Table(name = &quo ...