springboot入门_模板
springboot中已经不推荐使用jsp,而是推荐使用模板,如freemarker,thymeleaf等,本文记录在sprigboot中使用模板。
创建一个maven的springboot工程,
freemarker,要使用freemarker模板需引入所需要的jar,pom.xml如下:
- <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">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.allen.springboot.learn</groupId>
- <artifactId>springboot_freemarker</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.5.10.RELEASE</version>
- </parent>
- <dependencies>
- <!-- web 依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!-- Freemarker 依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-freemarker</artifactId>
- </dependency>
- </dependencies>
- </project>
在resources目录下创建application.properties文件,添加freemarker配置信息,代码如下:
- ##FREEMARKER
- spring.freemarker.template-loader-path=classpath:/view/
- spring.freemarker.suffix=.ftl
- #spring.freemarker.prefix=
- spring.freemarker.allow-request-override=false
- spring.freemarker.cache=true
- spring.freemarker.check-template-location=true
- spring.freemarker.charset=UTF-8
- spring.freemarker.content-type=text/html
- spring.freemarker.expose-request-attributes=false
- spring.freemarker.expose-session-attributes=false
- spring.freemarker.expose-spring-macro-helpers=false
这些配置信息中,比较重要的是前两行,分别指定文件所在路径和文件名的后缀。
至此freemarker的配置已经完成,接下来创建controller,实体类和模板,使用freemarker模板
- /**
- *
- */
- package com.allen.springboot.learn.controller;
- import java.util.ArrayList;
- import java.util.List;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.allen.springboot.learn.entity.UserInfo;
- /**
- * @author admin
- *
- */
- @Controller
- @RequestMapping("/freemarker")
- public class FreemarkerController {
- @RequestMapping("/hello")
- public String hello(Model model){
- UserInfo u1 = new UserInfo();
- u1.setId(1);
- u1.setEmail("11@qq.com");
- u1.setAge(12);
- u1.setPassword("111111");
- u1.setSex("男");
- u1.setUsername("allen");
- model.addAttribute("u1", u1);
- List<UserInfo> userList = new ArrayList<UserInfo>();
- userList.add(u1);
- UserInfo u2 = new UserInfo();
- u2.setId(2);
- u2.setEmail("22@qq.com");
- u2.setAge(22);
- u2.setPassword("222222");
- u2.setSex("F");
- u2.setUsername("kobe");
- userList.add(u2);
- UserInfo u3 = new UserInfo();
- u3.setId(3);
- u3.setEmail("33@qq.com");
- u3.setAge(33);
- u3.setPassword("333");
- u3.setSex("M");
- u3.setUsername("kg");
- userList.add(u3);
- model.addAttribute("userList", userList);
- return "fmk";
- }
- }
- /**
- *
- */
- package com.allen.springboot.learn.entity;
- /**
- * @author admin
- *
- */
- public class UserInfo {
- private Integer id;
- private String username;
- private String password;
- private String sex;
- private String email;
- private int age;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
- <!DOCTYPE html>
- <html>
- <head>
- <title>Insert title here</title>
- </head>
- <body>
- 用户信息<br/>
- id:${u1.id}<br/>
- username:${u1.username}<br/>
- password:${u1.password}<br/>
- sex:${u1.sex}<br/>
- email:${u1.email}<br/>
- age:${u1.age}
- <hr/>
- 列表信息<br/>
- <table>
- <#if (userList ? size > 0 )>
- <#list userList as user>
- <tr>
- <td>${user.id}</td>
- <td>${user.username}</td>
- <td>${user.password}</td>
- <td>${user.sex}</td>
- <td>${user.email}</td>
- <td>${user.age}</td>
- </tr>
- </#list>
- <#else>
- 没有数据
- </#if>
- </table>
- </body>
- </html>
现在就可以启动工程,访问controller了,信息正常信息
至此在springboot中使用freemarker已完成。
接下来看看使用thymeleaf模板,thymeleaf模板是springboot默认使用的模板,模板文件默认路径是在src/main/resources/templates下,和上文一样,只需要在pom.xml文件中引入对应的jar。
创建模板:
- <!DOCTYPE html>
- <html xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8" />
- <title>Insert title here</title>
- </head>
- <body>
- hello <span style="color:red" th:text="${name}"></span>
- </body>
- </html>
创建controller:
- /**
- *
- */
- package com.allen.springboot.learn.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- /**
- * @author admin
- *
- */
- @Controller
- @RequestMapping("/thymeleaf")
- public class ThymeleafController {
- @RequestMapping("/hello")
- public String helloThymeleaf(Model model){
- model.addAttribute("name", "Thymeleaf");
- return "tmf";
- }
- }
接下来启动项目,访问controller中的地址,浏览器端显示如下内容
springboot入门_模板的更多相关文章
- SpringBoot集成beetl模板快速入门
SpringBoot集成beetl模板快速入门 首次探索 beetl官方网址:http://ibeetl.com/ 创建SpringBoot工程(idea) 新建工程 选择创建Spring工程 书写包 ...
- Spring_MVC_教程_快速入门_深入分析
Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- SpringBoot入门基础
目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...
- Spring全家桶系列–[SpringBoot入门到跑路]
//本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...
- springBoot入门教程(图文+源码+sql)
springBoot入门 1 springBoot 1.1 SpringBoot简介 Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spr ...
- Springboot入门:
Springboot入门: 1.springboot是基于spring的全新框架,设计目的:简化spring应用配置和开发过程. 该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而事开发者无 ...
- SpringBoot入门系列(十一)统一异常处理的实现
前面介绍了Spring Boot 如何整合定时任务已经Spring Boot 如何创建异步任务和定时任务.不清楚的朋友可以看看之前的文章:<Spring Boot 入门系列文章> 接下来主 ...
- SpringBoot入门详细教程
一.SpringBoot入门 1.SpringBoot简介 SpringBoot是整个Spring技术栈的整合,来简化Spring应用开发,约定大于配置,去繁从简,just run 就能创建一 个独立 ...
随机推荐
- Thrift之TProtocol系列TJSONProtocol解析
在了解JSON协议之前,朋友们可以先去了解一下JSON的基础知识,和ASCII基本分布,关于JSON一些常识请见这里; JSON (JavaScript Object Notation)是一种数据交换 ...
- Vue精简版风格指南
前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...
- FORTH基础
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- (1-2)SpringCloud:服务的消费者rest+ribbon
服务发现的任务是由Eureka客户端完成,而服务的消费任务由Ribbon完成.Ribbon是一个基于HTTP和TCP的客户端负载据衡器,它可以通过客户端中配置ribbonServerList服务端列表 ...
- python3 第二十章 - 函数式编程之Higher-order function(高阶函数)
什么是高阶函数?把函数作为参数传入或把函数做为结果值返回,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式.函数式编程的特点: 函数本身可以赋值给变量,赋值后变量为函数: 允许将函数本身 ...
- JavaScript ECMAScript版本介绍
1. 介绍 1.1 什么是ECMAScript ECMAScript,简称ES,是由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers ...
- navicat的简单使用
navicat的简单使用: 连接: 输入ip地址,端口,用户名,密码 新建数据库: 数据库名,字符编码一定要选择utf-8 新建表: 字段,约束条件 双击表名,自己打开表,点击空列,添加数据,ctl+ ...
- python_如何统计序列中元素
问题1: 随机数列[12,5,8,7,8,9,4,8,5,...] 中出现次数最高的3个元素,他们出现的次数 问题2: 对某英文文章的单词,进行词频统计,找出出现次数最搞得10个单词,他们出现的次数是 ...
- synchronized内存可见性理解
一.背景 最近在看<Java并发编程实战>这本书,看到共享变量的可见性,其中说到"加锁的含义不仅仅局限于互斥行为,还包括内存可见性". 我对于内存可见性第一反应是vol ...
- java利用poi生成/读取excel表格
1.引入jar包依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...