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

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

更新pom.xml

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

更新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

创建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";}
}

/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中的数据通过${}访问.

目录结构:

SpringBoot整合themeleaf+bootstrap (五)相关推荐

  1. redis进阶之SpringBoot整合Redis(五)

    在聊 SpringBoot整合redis之前,我们先看看 Redis推荐的java连接开发工具:jedis知其然并知其所以然,授人以渔! 学习不能急躁,慢慢来会很快! Jedis 什么是Jedis 是 ...

  2. SpringBoot(七)整合themeleaf+bootstrap

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

  3. SpringBoot入门教程(七)整合themeleaf+bootstrap

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

  4. SpringBoot整合RabbitMQ 实现五种消息模型

    目录 SpringBoot中使用RabbitMQ 搭建初始环境 引入依赖 配置配置文件 测试类 注入 rabbitTemplate 消息队列RabbitMQ之五种消息模型 第一种直连模型使用 开发生产 ...

  5. springboot整合shiro-关于登出时,redis中缓存没有清理干净的问题

    原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/84722724 ©王赛超 如果是跟着我的shiro系列博客敲下来的,其 ...

  6. Springboot整合TrueLicense(包括License的生成、安装和验证)

    文章目录 前言 一.公钥.私钥和证书介绍 二.使用Java自带的Keytool生成公私钥库 1.生成私钥库 2.将公钥导出至临时文件 3.将文件导入到公钥库(新建) 三.TrueLicense介绍 四 ...

  7. 五、Springboot 整合Shiro---03认证---第三方QQ登陆

    本章节基于:四.Springboot 整合Shiro---02认证---记住我 在开始之前,先要理解一下oauth2: 推荐去看一下(六.授权码模式):阮一峰讲解的oauth2 下面附上一张阮一峰博客 ...

  8. 第五章 - 分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战一)

    系列文章目录 第一章 - 分布式定时任务框架ElasticJob之JavaApi整合Simple作业 第二章 - 分布式定时任务框架ElasticJob之JavaApi整合DataflowJob作业 ...

  9. SpringBoot整合SpringSecurity实现权限控制(五):用户管理

    系列文章目录 <SpringBoot整合SpringSecurity实现权限控制(一):实现原理> <SpringBoot整合SpringSecurity实现权限控制(二):权限数据 ...

最新文章

  1. 讯飞语音:客户端未被授权
  2. 使用locate 的正则查询 查找所有main.c
  3. html表单注册功能的实现,仅一个form表单 js实现注册信息依次填写提交功能
  4. SpringSecurity认证流程回顾
  5. phpcms发布新闻到数据库_如何利用PHPCMS调用新闻列表
  6. unix linux系统版本,怎么查看UNIX系统版本?
  7. docker学习(7) docker-compose使用示例
  8. DLA SQL分析函数:SQL语句审计与分析的利器
  9. 珍惜平时一点一滴,这几个值得跟进学习的阿里、滴滴、微软超级牛人的公众号!...
  10. MATLAB中施密特正交化的实现
  11. atitit.资源释放机制--attilax总结
  12. Linux_zlog日志系统的安装与使用
  13. AI人工智能服务器安装说明书,AI人工智能电脑配置及服务器双显卡的安装总结...
  14. linux SysV IPC实现
  15. python3 pdf转图片_Python 将pdf转成图片的方法
  16. Python实现太极图案
  17. Storm概念详解和工作原理,topology、spout、bolt的细节和API讲解之一
  18. Unity 安卓 Unable to initialize the Unity Engine / No Enough Space to install unity
  19. 更改linux文件系统为只读的方法
  20. springboot基于JAVA游戏周边商城设计与实现毕业设计源码261622

热门文章

  1. VMware虚拟机下实现Linux与window文件夹共享
  2. php输出文件,数组
  3. Microsoft SQL Server Compact 4.0ADO.NET Entity Framework 4.1MVC3
  4. apache 的http代理出错 502 Proxy Error
  5. Decoda Tutorial LUA调式器
  6. python调用自己写的函数_python调用自定义函数的实例操作
  7. mysql 触发器 new.id,mysql触发器的使用方法
  8. 云原生的本质_云原生2.0的逻辑之辩,如何让每个企业都成为新云原生企业
  9. laravel没有route.php,Laravel中的RouteCollection.php中的NotFoundHttpException
  10. c语言程序设计实践教程编程题8.3,C语言程序设计教程(21世纪计算机科学与技术实践型教程)...