sonne_game网站开发03 spring-mvc+freemarker整合
今天的任务就是在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
sonne_game网站开发03 spring-mvc+freemarker整合的更多相关文章
- spring-mvc+freemarker整合(sonne_game网站开发03)
今天的任务就是在spring+mybatis+springmvc的基础上,将freemarker整合进来. freemarker是什么? freemarker是一种模板引擎.它的目的是基于模板和数据, ...
- spring mvc + freemarker 整合
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...
- Thymeleaf 3与Spring MVC 4 整合配置
Thymeleaf 3与Spring MVC 4 整合配置 Maven 依赖配置 Spring 相关依赖就不说了 <dependency> <groupId>org.thyme ...
- 玩转spring mvc(四)---在spring MVC中整合JPA
关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/ar ...
- ssm整合说明与模板-Spring Spring MVC Mybatis整合开发
ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...
- sonne_game网站开发02spring+mybatis框架搭建
从最开始搭框架谈起,而且,我不仅仅会讲how,还会努力讲why.因为对于web开发,由于有太多好的框架.组件.工具,使得how往往不是那么深刻,背后的why更值得专研.如果有初学者关注我这个系列,也一 ...
- Spring+MVC+Mybatis整合
本文是对慕课网上"搞定SSM开发"路径的系列课程的总结,详细的项目文档和课程总结放在github上了.点击查看 什么是秒杀业务 网站售卖某产品时,规定在某个日期开始售卖限量的产品, ...
- Spring MVC freemarker使用
什么是 FreeMarker? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用 ...
- Spring MVC+FreeMarker简介
最近做项目,刚接触到SpringMVC与FreeMarker框架,就简单介绍一下自己的理解,不正确的地方请大家指教!! 1.Spring MVC工作原理: 用户发送请求--->前端服务器去找相对 ...
随机推荐
- altium designer 13 学习之添加汉字
在altium desginer中如果你是想添加英文还是比较方便的,基本直接就可以输入了,但是添加中文就不是那么简单了,下面不介绍下如何在altium designer中快速的添加自己想要的中文 工具 ...
- eclipse中的输入提示怎么设置
对于大多数的开发人员来说,打代码是一件非常繁琐的事情,eclipse中为我们提供了自动提示的功能,但是默认的提示只有当我们输入小数点后才能出现提示框,那么我们如何设置eclipse,能够让它为我们提示 ...
- Unable to open c
1. Unable to open c:\Cadence\PSD_14.2\tools\capture\allegro.cfg for reading. Please correct the abov ...
- Exynos 4412的启动过程分析[2]
做实验时我们是把 bin 文件烧入SD卡,比如前面做的汇编流水灯实验. 问:是谁把这些指令从 SD 卡读出来执行? 答:是固化在芯片内部ROM上的代码---它被称为iROM ,iROM是厂家事先烧写在 ...
- vmware-tools安装指南
为什么要安装VMware Tools? 因为它可以改善Virtual Machine 的运行性能,可以让鼠标能在本地主机和虚拟机中随意出入,而且Host OS 和Guest OS可以 互通有无,实现文 ...
- poj 1265 Area( pick 定理 )
题目:http://poj.org/problem?id=1265 题意:已知机器人行走步数及每一步的坐标 变化量 ,求机器人所走路径围成的多边形的面积.多边形边上和内部的点的数量. 思路:1.以 ...
- Idea无法DEBUG的问题
最近对web工程进行debug,突然发现无法进入断点了,原来以为是maven的问题,后来发现是tomcat环境变量导致的. 使用tomcat时经常碰到内存不足的情况,我们会对catalina.bat类 ...
- CentOS 7 安装 tomcat7.0
安装tomcat: [root@admin local]# cd /usr/local[root@admin local]# tar -zxv -f apache-tomcat-7.0.29.tar. ...
- 【js】获得项目路径
var curWwwPath=window.document.location.href; //获取主机地址之后的目录,如: uimcardprj/share/meun.jsp var pathNam ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.10
Every $k\times k$ positive matrix $A=(a_{ij})$ can be realised as a Gram matrix, i.e., vectors $x_j$ ...