1、什么是Spring MVC?

Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,SpringMVC框架的目的就是帮助我们简化开发。

Spring MVC 实现了即用的 MVC 的核心概念。它为控制器和处理程序提供了大量与此模式相关的功能。并且当向 MVC 添加反转控制(Inversion of Control,IoC)时,它使应用程序高度解耦,提供了通过简单的配置更改即可动态更改组件的灵活性。Spring MVC 提供了完全控制应用程序的各个方面的力量。Spring 的 Web MVC 模块是围绕 DispatcherServlet 而设计的。DispatcherServlet 给处理程序分派请求,执行视图解析,并且处理语言环境和主题解析,并且还为上传文件提供支持。

Spring MVC属于Spring Frame Work的后续产品,已经融合在Spring Web Flow里面。Spring框架最初由Rod Johnson撰写,并于2003年6月根据Apache 2.0许可证首次发布。

Spring MVC框架提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。 MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。

模型(Model)封装了应用程序数据,通常它们将由POJO类组成。视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。

参考:SpringMVC中文官网:SpringMVC中文官网

2、什么是Freemarker

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
目前企业中:主要用Freemarker做静态页面或是页面展示

3、Freemarker的使用方法

把freemarker的jar包添加到工程中,Maven工程添加依赖

<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>

springMVC-servlet.xml文件内容:

<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="requestContextAttribute" value="request" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
</bean>

applicationContext.xml文件内容:

<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/page/" />
    <!--上下文地址的获取-->
<property name="freemarkerVariables">
<map>
<entry key="base" value="#{servletContext.contextPath}" />
</map>
</property>
<property name="defaultEncoding" value="utf-8" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd</prop><!-- 时间格式化 -->
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>

模板文件示例,ftl文件,freemarker.ftl

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${title}</title>
</head>
<body>
${content}
</body>
</html>

Controler示例,通过ModelAndView引用一个模板,使用的时候名字不带后缀

@Controller
@RequestMapping("/index/")
public class FreeMarkerController
{
private Logger LOGGER = LoggerFactory.getLogger(FreeMarkerController.class); //批量更新DQC数据用的
@RequestMapping(value = "test", produces = "text/plain;charset=UTF-8",
method = RequestMethod.GET)
public ModelAndView freeMarkerTest()
{
ModelAndView mv = new ModelAndView("freemarker");
mv.addObject("title", "Spring MVC And Freemarker");
mv.addObject("content", " Hello world , This is my first spring mvc ! ");
return mv;
}
}

Spring MVC整合 freemarker的更多相关文章

  1. 【转载】Spring MVC 整合 Freemarker

    前言 1.为什么要使用Spring MVC呢? 2.为什么要使用Freemarker呢? 3.为什么不使用Struts2呢? 此示例出现的原因就是发现了struts2的性能太差,所以学习Spring ...

  2. Spring mvc整合freemarker详解

    1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式 ...

  3. Spring MVC整合FreeMarker

    什么是Freemarker?    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或 ...

  4. 【FreeMarker】Spring MVC与FreeMarker整合(二)

    前一篇介绍了FreeMarker的基本使用,本例介绍Spring MVC与FreeMarker整合 不熟悉项目搭建,可参考 [FreeMarker]FreeMarker快速入门(一) 整合 1.新建S ...

  5. Spring mvc+hibernate+freemarker(实战)

    Spring mvc+hibernate+freemarker(实战) 博客分类: Spring Spring mvchibernatefreemarkerwebjava  今天我为大家做了一个 sp ...

  6. Spring与Struts2整合VS Spring与Spring MVC整合

    Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的 ...

  7. spring MVC 整合mongodb

    Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码 ...

  8. MyBatis+Spring+Spring MVC整合开发

    MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuy ...

  9. 【RabbitMQ系列】 Spring mvc整合RabbitMQ

    一.linux下安装rabbitmq 1.安装erlang环境 wget http://erlang.org/download/otp_src_18.2.1.tar.gz tar xvfz otp_s ...

随机推荐

  1. 考研党其实可以用思维导图MindManager做考研复习计划

    近年由于就业压力,个人学历提升等各种原因,考研的人数越来越多了,相对难度也越来越大了,尽管今年研究生招生规模同比去年增加18.9万,但也无法掩盖考研的竞争逐年激烈. 身为考研大军中的预备选手之一,小编 ...

  2. 慢SQL优化:where id in (select max(id)...) 改为join后性能提升400倍

    背景 有两张表,都是主键递增,类似于主表和明细表: statistics_apply:统计申请表,主键applyId,7万多条记录 statistics_apply_progress:统计申请进度表( ...

  3. Jsoup获取网页内容(并且解决中文乱码问题)

    1. 根据连接地址获取网页内容,解决中文乱码页面内容,请求失败后尝试3次 private static Document getPageContent(String urlStr) { for (in ...

  4. linkedin第三方登陆

    到linkedin注册成为开发者:https://developer.linkedin.com/zh-cn 成功后,创建应用,填写重定向地址,得到appid和appkey 使用这个sdk https: ...

  5. web文件上传漏洞

    什么是文件上传漏洞? 指利用系统的对文件上传部分的控制不足或处理缺陷,上传可执行的动态脚本文件/webShell进行攻击行为. 原因 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的 ...

  6. VMware Workstation Pro 16 官方正式版下载(含密钥)

    VMware官方网站 https://www.vmware.com VMware Workstation Pro已于近日更新.毫无疑问,这可能是Windows系统上最强大最好用的虚拟机! VMware ...

  7. 我劝!这位年轻人不讲MVCC,耗子尾汁!

    目录 一.事物的隔离级别与MVCC? 二.Repeatable Read是如何实现的 本文是MySQL专题第15篇,全文近100篇(公众号首发) 三.Read Commited是如何实现的: 本文是M ...

  8. day7(redis的pipline使用)

    1.pipeline原理 redis基本语法:https://www.cnblogs.com/xiaonq/p/7919111.html redis四篇:https://www.cnblogs.com ...

  9. Python中使用eval执行下面函数的结果怎么是字符串'10020'?

    定义了函数: def add(a,b): s='a+b' c=compile(s,'','eval') gArea,lArea = {},{} gArea['a']=str(a10) gArea['b ...

  10. PyQt(Python+Qt)学习随笔:工具箱(QToolBox)的用途及标签部件项(tabbed widget item)作用介绍

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.概述 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...