springboot中已经不推荐使用jsp,而是推荐使用模板,如freemarker,thymeleaf等,本文记录在sprigboot中使用模板。

创建一个maven的springboot工程,

freemarker,要使用freemarker模板需引入所需要的jar,pom.xml如下:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.allen.springboot.learn</groupId>
  4. <artifactId>springboot_freemarker</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6.  
  7. <parent>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-parent</artifactId>
  10. <version>1.5.10.RELEASE</version>
  11. </parent>
  12.  
  13. <dependencies>
  14. <!-- web 依赖 -->
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-web</artifactId>
  18. </dependency>
  19.  
  20. <!-- Freemarker 依赖 -->
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-freemarker</artifactId>
  24. </dependency>
  25. </dependencies>
  26.  
  27. </project>

在resources目录下创建application.properties文件,添加freemarker配置信息,代码如下:

  1. ##FREEMARKER
  2. spring.freemarker.template-loader-path=classpath:/view/
  3. spring.freemarker.suffix=.ftl
  4. #spring.freemarker.prefix=
  5. spring.freemarker.allow-request-override=false
  6. spring.freemarker.cache=true
  7. spring.freemarker.check-template-location=true
  8. spring.freemarker.charset=UTF-8
  9. spring.freemarker.content-type=text/html
  10. spring.freemarker.expose-request-attributes=false
  11. spring.freemarker.expose-session-attributes=false
  12. spring.freemarker.expose-spring-macro-helpers=false

这些配置信息中,比较重要的是前两行,分别指定文件所在路径和文件名的后缀。

至此freemarker的配置已经完成,接下来创建controller,实体类和模板,使用freemarker模板

  1. /**
  2. *
  3. */
  4. package com.allen.springboot.learn.controller;
  5.  
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12.  
  13. import com.allen.springboot.learn.entity.UserInfo;
  14.  
  15. /**
  16. * @author admin
  17. *
  18. */
  19. @Controller
  20. @RequestMapping("/freemarker")
  21. public class FreemarkerController {
  22.  
  23. @RequestMapping("/hello")
  24. public String hello(Model model){
  25. UserInfo u1 = new UserInfo();
  26. u1.setId(1);
  27. u1.setEmail("11@qq.com");
  28. u1.setAge(12);
  29. u1.setPassword("111111");
  30. u1.setSex("男");
  31. u1.setUsername("allen");
  32. model.addAttribute("u1", u1);
  33.  
  34. List<UserInfo> userList = new ArrayList<UserInfo>();
  35. userList.add(u1);
  36. UserInfo u2 = new UserInfo();
  37. u2.setId(2);
  38. u2.setEmail("22@qq.com");
  39. u2.setAge(22);
  40. u2.setPassword("222222");
  41. u2.setSex("F");
  42. u2.setUsername("kobe");
  43. userList.add(u2);
  44. UserInfo u3 = new UserInfo();
  45. u3.setId(3);
  46. u3.setEmail("33@qq.com");
  47. u3.setAge(33);
  48. u3.setPassword("333");
  49. u3.setSex("M");
  50. u3.setUsername("kg");
  51. userList.add(u3);
  52. model.addAttribute("userList", userList);
  53. return "fmk";
  54. }
  55.  
  56. }
  1. /**
  2. *
  3. */
  4. package com.allen.springboot.learn.entity;
  5.  
  6. /**
  7. * @author admin
  8. *
  9. */
  10. public class UserInfo {
  11.  
  12. private Integer id;
  13. private String username;
  14. private String password;
  15. private String sex;
  16. private String email;
  17. private int age;
  18.  
  19. public Integer getId() {
  20. return id;
  21. }
  22. public void setId(Integer id) {
  23. this.id = id;
  24. }
  25. public String getUsername() {
  26. return username;
  27. }
  28. public void setUsername(String username) {
  29. this.username = username;
  30. }
  31. public String getPassword() {
  32. return password;
  33. }
  34. public void setPassword(String password) {
  35. this.password = password;
  36. }
  37. public String getSex() {
  38. return sex;
  39. }
  40. public void setSex(String sex) {
  41. this.sex = sex;
  42. }
  43. public String getEmail() {
  44. return email;
  45. }
  46. public void setEmail(String email) {
  47. this.email = email;
  48. }
  49. public int getAge() {
  50. return age;
  51. }
  52. public void setAge(int age) {
  53. this.age = age;
  54. }
  55.  
  56. }
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Insert title here</title>
  5. </head>
  6. <body>
  7. 用户信息<br/>
  8. id:${u1.id}<br/>
  9. username:${u1.username}<br/>
  10. password:${u1.password}<br/>
  11. sex:${u1.sex}<br/>
  12. email:${u1.email}<br/>
  13. age:${u1.age}
  14. <hr/>
  15. 列表信息<br/>
  16. <table>
  17. <#if (userList ? size > 0 )>
  18. <#list userList as user>
  19. <tr>
  20. <td>${user.id}</td>
  21. <td>${user.username}</td>
  22. <td>${user.password}</td>
  23. <td>${user.sex}</td>
  24. <td>${user.email}</td>
  25. <td>${user.age}</td>
  26. </tr>
  27. </#list>
  28. <#else>
  29. 没有数据
  30. </#if>
  31. </table>
  32.  
  33. </body>
  34. </html>

现在就可以启动工程,访问controller了,信息正常信息

至此在springboot中使用freemarker已完成。

接下来看看使用thymeleaf模板,thymeleaf模板是springboot默认使用的模板,模板文件默认路径是在src/main/resources/templates下,和上文一样,只需要在pom.xml文件中引入对应的jar。

创建模板:

  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. hello <span style="color:red" th:text="${name}"></span>
  9. </body>
  10. </html>

创建controller:

  1. /**
  2. *
  3. */
  4. package com.allen.springboot.learn.controller;
  5.  
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9.  
  10. /**
  11. * @author admin
  12. *
  13. */
  14. @Controller
  15. @RequestMapping("/thymeleaf")
  16. public class ThymeleafController {
  17.  
  18. @RequestMapping("/hello")
  19. public String helloThymeleaf(Model model){
  20. model.addAttribute("name", "Thymeleaf");
  21. return "tmf";
  22. }
  23.  
  24. }

接下来启动项目,访问controller中的地址,浏览器端显示如下内容

springboot入门_模板的更多相关文章

  1. SpringBoot集成beetl模板快速入门

    SpringBoot集成beetl模板快速入门 首次探索 beetl官方网址:http://ibeetl.com/ 创建SpringBoot工程(idea) 新建工程 选择创建Spring工程 书写包 ...

  2. Spring_MVC_教程_快速入门_深入分析

    Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门  资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...

  3. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  4. SpringBoot入门基础

    目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...

  5. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

  6. springBoot入门教程(图文+源码+sql)

    springBoot入门 1   springBoot 1.1 SpringBoot简介 Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spr ...

  7. Springboot入门:

    Springboot入门: 1.springboot是基于spring的全新框架,设计目的:简化spring应用配置和开发过程. 该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而事开发者无 ...

  8. SpringBoot入门系列(十一)统一异常处理的实现

    前面介绍了Spring Boot 如何整合定时任务已经Spring Boot 如何创建异步任务和定时任务.不清楚的朋友可以看看之前的文章:<Spring Boot 入门系列文章> 接下来主 ...

  9. SpringBoot入门详细教程

    一.SpringBoot入门 1.SpringBoot简介 SpringBoot是整个Spring技术栈的整合,来简化Spring应用开发,约定大于配置,去繁从简,just run 就能创建一 个独立 ...

随机推荐

  1. Thrift之TProtocol系列TJSONProtocol解析

    在了解JSON协议之前,朋友们可以先去了解一下JSON的基础知识,和ASCII基本分布,关于JSON一些常识请见这里; JSON (JavaScript Object Notation)是一种数据交换 ...

  2. Vue精简版风格指南

    前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...

  3. FORTH基础

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  4. (1-2)SpringCloud:服务的消费者rest+ribbon

    服务发现的任务是由Eureka客户端完成,而服务的消费任务由Ribbon完成.Ribbon是一个基于HTTP和TCP的客户端负载据衡器,它可以通过客户端中配置ribbonServerList服务端列表 ...

  5. python3 第二十章 - 函数式编程之Higher-order function(高阶函数)

    什么是高阶函数?把函数作为参数传入或把函数做为结果值返回,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式.函数式编程的特点: 函数本身可以赋值给变量,赋值后变量为函数: 允许将函数本身 ...

  6. JavaScript ECMAScript版本介绍

    1. 介绍 1.1 什么是ECMAScript ECMAScript,简称ES,是由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers ...

  7. navicat的简单使用

    navicat的简单使用: 连接: 输入ip地址,端口,用户名,密码 新建数据库: 数据库名,字符编码一定要选择utf-8 新建表: 字段,约束条件 双击表名,自己打开表,点击空列,添加数据,ctl+ ...

  8. python_如何统计序列中元素

    问题1: 随机数列[12,5,8,7,8,9,4,8,5,...] 中出现次数最高的3个元素,他们出现的次数 问题2: 对某英文文章的单词,进行词频统计,找出出现次数最搞得10个单词,他们出现的次数是 ...

  9. synchronized内存可见性理解

    一.背景 最近在看<Java并发编程实战>这本书,看到共享变量的可见性,其中说到"加锁的含义不仅仅局限于互斥行为,还包括内存可见性". 我对于内存可见性第一反应是vol ...

  10. java利用poi生成/读取excel表格

    1.引入jar包依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...