今天的任务就是在spring+mybatis+springmvc的基础上,将freemarker整合进来。

freemarker是什么?

freemarker是一种模板引擎。它的目的是基于模板和数据,生成目标静态文件(例如html)。所以freemarker不只是用于web开发。

对于web开发,关键在于有了这个模板引擎,便可以不断的依据模板和数据生成html页面,这便实现了动态(随着用户操作而更新数据),虽然生成的都是静态的html。

例如,一个页面中包含${usr.usrname}的内容,显示用户名,用户点击下一页按钮,后台查询数据库,获取下一页用户名,将此作为数据,用freemarker从新生成html,发送给浏览器。新的数据就会替换${..}里的内容。

freemarker相对于jsp

这样做主要是因为freemarker相对于jsp的优势:真正的体现了mvc的设计思维。

因为,jsp是可以插入java代码的,虽然你也可以不那么做,但总是有人会那样做,而那样做,就是没有真正地体现mvc的思想,没有真正地实现分层。只有更好地实现分层,才能更好实现前端开发和后台开发的分工。

上面说过,freemarker就是套用模板,模板+数据生成html页面。

而运行机制上,jsp则是通过引擎转化为servlert,再编译为.class文件。运行这个servlet实例来返回对浏览器的响应。

所以说从运行机制上来看,二者还是有很大不同的。

spring-mvc+freemarker整合

之前已经搭好了spring+mybatis+spring-mvc框架了,所以今天要做的只能在之前的基础上继续。http://www.cnblogs.com/rixiang/p/6260433.html

加入freemarker的jar包。

在spring配置文件里,加入freemarker的配置:

   <bean id="freemarkerConfig"  class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  <property name="templateLoaderPath" value="WEB-INF/ftl/" />  <property name="freemarkerSettings">  <props>  <prop key="template_update_delay">0</prop>  <prop key="default_encoding">UTF-8</prop>  <prop key="number_format">0.##########</prop>  <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  <prop key="classic_compatible">true</prop>  <prop key="template_exception_handler">ignore</prop>  </props>  </property>  </bean>

千万不要忘记,将ViewResolver换成freemarker的视图解析器:

     <!-- freemarker's view resolver --> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"><property name="contentType" value="text/html; charset=UTF-8" /><property name="suffix" value=".ftl" /></bean>

ViewResolver是spring-mvc的概念,不理解的就要额外去学习下。

依据目前的Controller类:

package sonn.web.controller;import java.util.List;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import sonn.web.entity.User;
import sonn.web.mapper.UserMapper;/**
* @ClassName: GameController
* @Description: the controller of game
* @author sonne
* @date 2017-1-7 16:20:16
* @version 1.0*/
@Controller
@RequestMapping("/game")
public class GameController {@Resource(name = "userMapper")private UserMapper userMapper;@RequestMapping(value = "/lst", method = RequestMethod.GET)public String submit(HttpServletRequest request,Model model) throws Exception {List<User> usr_lst = userMapper.findAll(); model.addAttribute("lst", usr_lst);return "game_lst";}
}

写一个对应的freemarker模板:

<!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>sonne_game</title>  </head>  <body>  <p>Hello, here is sonne's game world.<#list lst as usr><p>The usr's usrname is ${usr.usrname}</p><p>The usr's passwd is ${usr.passwd}</p></#list></body>
</html>  

启动项目,输入地址http://localhost:8888/Sonne_game/game/lst.form

相关代码请查阅我的github:https://github.com/SonnAdolf/sonne_game

转载于:https://www.cnblogs.com/rixiang/p/6261621.html

spring-mvc+freemarker整合(sonne_game网站开发03)相关推荐

  1. spring mvc + freemarker 整合

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...

  2. Spring+ Spring mvc+MyBatis整合

    Spring+ Spring mvc+MyBatis整合 目录结构 (1) 修改web.xml配置文件的内容 (2) 添加mybatis.spring mvc.spring database的xml文 ...

  3. ssm整合说明与模板-Spring Spring MVC Mybatis整合开发

    ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...

  4. Spring注解驱动开发第53讲——Servlet 3.0与Spring MVC的整合分析

    写在前面 在前两讲中,我们说了一下ServletContainerInitializer机制以及如何利用ServletContext向web容器中注册Servlet.Listener以及Filter这 ...

  5. SSM整合+视频网站开发

    课程目标 使用SpringMVC+Mybatis+Spring+Maven进行分模块整合 简单实现视频网站开发 一.项目演示 视频网站构建模式 分为:自建模式和第三方模式 自建模式:需要自己搭建服务器 ...

  6. Spring Spring MVC Hibernate 整合备忘

    以下为此三种框架整合配置的详细备注,以及部分问题备忘 项目结构和配置文件可访问 Github 查看 1. pom.xml 尽量使用 Maven 管理项目依赖以减少包引入时的麻烦,以及避免跨开发工具问题 ...

  7. shiro +spring + spring mvc+ mybatis整合【转】

    2019独角兽企业重金招聘Python工程师标准>>> CREATE TABLE `sys_permission` ( `id` bigint(20) NOT NULL COMMEN ...

  8. Spring MVC搭建REST风格网站

    REST是表述性状态转移的意思.REST核心是以资源为中心. 比如,URI是统一资源标识符,URL是一种URI,称为统一资源定位符.现在很多网站设计的URL,没有以资源为中心,没有体现URI的标识本质 ...

  9. 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成

      Jeecg-mybatis-framework 版本 简要说明 JEECG[J2EE Code Generation]是一款基于代码生成器的J2EE智能开发框架,借助该框架可以节省50%的工作量, ...

  10. mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成

    Jeecg-Mybatis版本代码生成器演示视频 代码下载:JEECG-mybatis参考学习版本 简要说明  JEECG[J2EE Code Generation]  代码生成:根据表生成对应的Be ...

最新文章

  1. MySql层级树查询
  2. 如何创建一份springboot的docker镜像
  3. Linux运维系统工程师系列---04
  4. 全民营销时代,让私域流量变成业务增量需要几步?
  5. matlab时域转换成频域_从时域到频域,你只需要旋转一下!
  6. 方向前沿、计算资源充足,三星通信研究院SAIT China Lab招聘研究员及实习生
  7. c++将小数化为二进制_C++中的float内存存储、与十进制的转换
  8. CVE-2022-28512 Fantastic Blog CMS 存在SQL注入漏洞
  9. [Bucket CTF 2023]
  10. 啥也不会还做出了机器学习——测试心得
  11. 二级菜单(隐藏显示)
  12. linux 符号所在库,linux – 即使nm表示该符号存在于共享库中时,也未引用符号
  13. 微信/QQ域名防封防拦截360不报毒任意链接跳转源码
  14. CP2102 USB驱动
  15. GO+MySQL,如虎添翼!
  16. python 计算结果 nan_python中的nan是什么意思
  17. java 微信 小程序 模板 推送
  18. 前端需要掌握的网络知识
  19. BIM+GIS可视化工程管理平台,施工全过程动态监管!
  20. 为什么SimpleDateFormat线程不安全? 侵立删

热门文章

  1. android手机版本为什么打不开,手机打不开,不能打开usb调试,如何刷机
  2. 自己电脑当linux服务器,在Linux下轻松搭建自己的DNS服务器
  3. 基于springboot+vue的医院预约系统(前后端分离)
  4. 基于SSM的闲猫二手商城
  5. alians mysql_Linux学习——Shell基础
  6. php 环境 手动,手动搭建php环境(win系统)
  7. python将缺失值用0代替_平滑而不使用零填充缺失值
  8. Servlet chapter 3
  9. java.awt Robot 自动化测试 与 KeyEvent 常用按键
  10. html写彩虹,HTML5 Canvas彩虹粒子组成的动画文本