Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中—HTML能够在浏览器中正确显示,并且可以作为静态原型,从而在开发团队中实现更强大的协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。

Spring-boot-starter-web集成了Tomcat以及Spring MVC,会自动配置相关东西,Thymeleaf是用的比较广泛的模板引擎.

v更新pom.xml

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

v更新application.properties

#thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.check-template-location=true
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5

v创建Controller

之所以新建Controller,而不是复用之前的IndexController,是因为IndexController使用的是@RESTController注解的方式。

1. 使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解

2. @RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

新建UserController:

package com.demo.controller;import com.demo.pojo.UserPosition;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import java.math.BigDecimal;
import java.util.List;/*** Created by toutou on 2018/10/20.*/
@Controller
public class UserController {@AutowiredUserService userService;@RequestMapping(value = "/mynearby")public String myNearby(Model model, double lon, double lat){double r = 6371;//地球半径千米double dis = 2; //半径 单位:kmdouble dlng =  2*Math.asin(Math.sin(dis/(2*r))/Math.cos(lat*Math.PI/180));dlng = dlng*180/Math.PI;//角度转为弧度double dlat = dis/r;dlat = dlat*180/Math.PI;double minlat =lat-dlat;double maxlat = lat+dlat;double minlng = lon -dlng;double maxlng = lon + dlng;List<UserPosition> list = userService.getVicinity(BigDecimal.valueOf(minlng), BigDecimal.valueOf(maxlng), BigDecimal.valueOf(minlat), BigDecimal.valueOf(maxlat));model.addAttribute("myinfo",list);return "mynearby";}
}

v创建页面

/src/main/resources/templates/mynearby.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<html lang="en">
<head><meta content="text/html;charset=UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet"><title>附近的小区</title>
</head>
<body>
<br/>
<div class="panel panel-primary"><div class="panel-heading"><h3 class="panel-title">我的坐标</h3></div><div class="panel-body"><span>116.31064,40.062658</span></div><br/><div th:if="${not #lists.isEmpty(myinfo)}"><div class="panel panel-primary"><div class="panel-heading"><h3 class="panel-title">附近的小区</h3></div><div class="panel-body"><ul class="list-group"><li class="list-group-item" th:each="item : ${myinfo}"><span th:text="${item.id}"></span><span th:text="${item.city}"></span><span th:text="${item.position}"></span><span th:text="${item.longitude}"></span><span th:text="${item.latitude}"></span><button class="btn">删除</button></li></ul></div></div></div>
</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script th:inline="javascript">
//    var single = [[${singlePerson}]];
//    console.log(single.name+"/"+single.age);
    $(function(){$(".btn").click(function(){alert("删除功能完善中...");});});
</script>
</body>
</html>

xmlns:th="http://www.thymeleaf.org"命名空间,将镜头转化为动态的视图,需要进行动态处理的元素使用“th:”前缀;两个link引入bootstrap框架,通过@{}引入web静态资源(括号里面是资源路径)访问model中的数据通过${}访问.

运行效果:

目录结构:

v源码地址

https://github.com/toutouge/javademo/tree/master/hellospringboot

作  者:请叫我头头哥
出  处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

转载于:https://www.cnblogs.com/toutou/p/9802872.html

SpringBoot入门教程(七)整合themeleaf+bootstrap相关推荐

  1. SpringBoot(七)整合themeleaf+bootstrap

    前言 Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎.Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中-HTML能够在浏览器中正确显示,并且可以作为静态原型 ...

  2. SpringBoot入门教程(转)

    SpringBoot入门教程 注:此文章转载于GitHub,但是原文章图片加载出错,因此我整理了一下,并非本人原创,在此感谢原作者! 附上原文视频课地址供大家学习: www.bilibili.com/ ...

  3. springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)

    2019独角兽企业重金招聘Python工程师标准>>> 首先回顾下前几篇的内容:springboot 入门教程(1),springboot 入门教程-Thymeleaf(2), sp ...

  4. SpringBoot入门教程

    SpringBoot入门教程 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. 2.微服务 微服务:架构风格 ...

  5. SpringBoot进阶教程(七十三)整合elasticsearch

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 图像设定阈值二值matlab,“图像类型转换II——使用“导入、导出和转换”中的“阈值法”转换为二值图像”,MATLABImageProcessingToolbox,入门教程,七,之...

    1 imbinarize函数 在 [MATLAB Image Processing Toolbox 入门教程二]快速入门之"亮度校正"和"目标识别" 中我们已经 ...

  7. 超详细 Springboot 入门教程 ---- IDEA + maven 实现英雄联盟角色创建

    导语 Spring Boot 主要目标是: 为所有 Spring 的开发提供一个从根本上更快的入门体验 开箱即用,但通过自己设置参数,即可快速摆脱这种方式. 提供了一些大型项目中常见的非功能性特性,如 ...

  8. SpringBoot整合themeleaf+bootstrap (五)

    Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎.Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中-HTML能够在浏览器中正确显示,并且可以作为静态原型,从而 ...

  9. springboot 入门教程(1)

    2019独角兽企业重金招聘Python工程师标准>>> 前言 1.什么是springboot? 简单的理解就是一个快速开发框架集合,大家都叫他快速开发脚手架. 2.springboo ...

最新文章

  1. c语言 12大于12么,【C语言】第十二章
  2. 删除WSS卸载后遗留的数据库
  3. OKB持续拉升突破8美元关口
  4. 如何区别***工具与病毒
  5. 主从复制2——拥有海量数据主服务器的主从复制模型详细实现;
  6. Linux文档内容查询命令
  7. Vue中,v-show与v-if的区别
  8. 惯性导航系统--百科笔记
  9. 用户使用手机号快速登录注册功能实现
  10. python的三种将整数转换成二进制的方法
  11. 算法:经典leetcode算法题解
  12. python求最大公约数和最小公倍数的两种方法
  13. 升级 glibc 到2.18版本
  14. 日志分析篇---Web日志分析
  15. vue对表格进行排名排序
  16. Qt moc: Too many input files specified
  17. 《程序员2013精华本》
  18. 探索Android 9.0 Pie新特性变更
  19. 计算机网络(期末复习5、6章)
  20. 机房空调制冷量计算方法

热门文章

  1. android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)
  2. ecs mysql 安装_CentOS8 安装MySQL8(ECS系列二)
  3. python情感分析算法_Python 情感分析
  4. python用方括号提取字符中的数值_Python使用re模块正则提取字符串中括号内的内容示例...
  5. python import pandas报错找不到_扎心!“我学了半年 Python,还是找不到工作”
  6. vue读取外部配置文件
  7. JAVA多线程-CountDownLatch计数器
  8. 怎么看表_怎么和爸妈沟通?
  9. 关于单点登录的一些资料(转)
  10. 用Python快速找到出现次数最多的数据