Spring MVC整合 freemarker及使用方法

 更新时间:2019年07月26日 10:18:01   作者:楚楚99  
Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,这篇文章主要介绍了Spring MVC整合 freemarker及使用方法,需要的朋友可以参考下

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及使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • springmvc+ajax+formdata上传图片代码实例

    springmvc+ajax+formdata上传图片代码实例

    这篇文章主要介绍了springmvc+ajax+formdata上传图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结

    IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结

    今天小编就为大家分享一篇关于IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • SpringBoot+Redis执行lua脚本的方法步骤

    SpringBoot+Redis执行lua脚本的方法步骤

    这篇文章主要介绍了SpringBoot+Redis执行lua脚本的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java实现斗地主的发牌功能

    Java实现斗地主的发牌功能

    这篇文章主要为大家详细介绍了Java实现斗地主的发牌功能,含按顺序发牌和玩家牌排序显示等功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • StateMachine 状态机机制深入解析

    StateMachine 状态机机制深入解析

    这篇文章主要介绍了,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 基于Java实现一个简单的数据同步组件

    基于Java实现一个简单的数据同步组件

    这篇文章主要为大家详细介绍了如何基于Java实现一个简单的数据同步组件,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-06-06
  • SpringBoot开发详解之Controller接收参数及参数校验

    SpringBoot开发详解之Controller接收参数及参数校验

    数据校验是为了使系统更完整,数据更精确,同时也有利于维护数据的安全性,下面这篇文章主要给大家介绍了关于SpringBoot开发详解之Controller接收参数及参数校验的相关资料,需要的朋友可以参考下
    2022-03-03
  • Android 应用按返回键退向后台运行实例代码

    Android 应用按返回键退向后台运行实例代码

    这篇文章主要介绍了Android 应用按返回键退向后台运行实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • Java项目Guava包 HashMultimap使用及注意事项

    Java项目Guava包 HashMultimap使用及注意事项

    guava基本上可以说是java开发项目中,大概率会引入的包,今天介绍的主角是一个特殊的容器HashMultmap,可以简单的将它的数据结构理解为Map<K, Set<V>>,今天主要介绍下基础的知识点 HashMultmap级使用,感兴趣的朋友一起看看吧
    2022-05-05
  • 在Java的Hibernate框架中对数据库数据进行查询操作

    在Java的Hibernate框架中对数据库数据进行查询操作

    这篇文章主要介绍了Java的Hibernate框架中对数据库数据进行查询操作的方法,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12

最新评论