springboot

springboot

1.项目搭建

spring initializr-spring boot devtools-lombok-spring web-thymeleaf

2.配置文件

yml,properties

3.集成jdbcTemplate

3.1引入依赖

   <!-- 添加mysql jdbc依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!-- 添加springboot jdbcTemplate依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

3.2添加配置文件

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8
username: root
password: root
dbcp2:
max-idle: 20
min-idle: 10

4.thymeleaf常用配置

spring:
thymeleaf:
cache: false
mode: LEGACYHTML5
# 配置了前缀
prefix: classpath:/templates/
# 配置了后缀
suffix: .html

web:
resources:
# 配置静态文件路径默认是classpath:/static/
static-locations: classpath:/static/

mvc:
# 静态文件匹配模式
static-path-pattern: /**

5.设置th的命名空间

< html lang=“ch” xmlns:th=“http://www.thymeleaf.org”>

6.取值操作

6.1 普通值
<div th:text="${name}"></ div>
6.2 富文本
<div th:utext="${content}">< /div>
6.3取对象值

<div th:text="${user.username}"></div>

6.4 通过th:object (少写user)

    <ul th:object="${user}">
        <li th:text="*{username}">用户名</li>
        <li th:text="*{password}"></li>
        <li th:text="*{id}"></li>
    </ul>

6.5 在标签内获取对应值(标签内的值能够共存)

    <div th:inline="text">
        用户名:[[${name}]]
    </div>

6.6 js脚本取值

    <script th:inline="javascript">
        var name = [[${name}]];
        console.log(name)
    </script>

6.7 数据处理
时间格式化

<!-- 时间格式化 -->
	<p th:text="${#dates.format(birthday,'yyyy-MM-dd')}" />
	<p th:text="${#dates.format(birthday,'yyyy-MM-dd HH:mm:ss.SSS')}" />
	<hr />
	<!-- 替换 把.换成$ -->
	<p th:text="${#strings.replace('www.baidu.cn','.','$')}" />
	<!-- 	转大写 -->
	<p th:text="${#strings.toUpperCase('www.baidu.cn')}" />
	<!-- 	去除两边空格 -->
	<p th:text="${#strings.trim(' www.baidu.cn ')}" />
	<hr />
	<!-- 	判断names中是否包含boot-0 -->
	<p th:text="${#sets.contains(names,'boot-0')}" />
	<p th:text="${#sets.contains(names,'boot-9')}" />
	<!-- 	元素个数 -->
	<p th:text="${#sets.size(names)}" />
	<hr />
	<!-- 判断ids中是否包含 0  -->
	<p th:text="${#sets.contains(ids,0)}" />
	<!-- 	取出下标为1的元素 -->
	<p th:text="${ids[1]}" />
	<p th:text="${names[1]}" />

4.地址操作

4.1 spring boot 内置地址处理

<!-- 引用 js-->
<script th:src="@{/js/index.js}" ></script>
<!-- 引用 css-->
<link rel="stylesheet" type="text/css" th:href="@{/css/index.css}">
<!-- 引用 图片-->
<img th:src="@{/images/mao.png}"  alt="图片"/>

4.2 在css中引入静态资源

div {
    background-color: lightblue;
    background-image: url("../images/mao.png");
}

4.3 链接跳转

    <a href="detail">详情</a>
    <a href="/api/detail">绝对地址</a>
    <a th:href="@{/detail}">thymeleaf写法</a>
    <a th:href="@{/detail?name=张三丰}">thymeleaf传参</a>
    <a th:href="@{/detail(name=张三丰,id=123)}">thymeleaf新写法</a>
    <a th:href="@{/detail(name=${name},id=123)}">thymeleaf引用变量</a>

5. 获取内置对象

当我们需要使用内置对象的时候,可以通过#内置对象获取,如
<!-- 使用request中的方法 -->
	<p th:text="${#httpServletRequest.getRemoteAddr()}" />
	<!-- 	获取request中的数据 -->
	<p th:text="${#httpServletRequest.getAttribute('requestMessage')}" />
	<!-- 	获取session中的数据 -->
	<p th:text="${#httpSession.getAttribute('sessionMessage')}" />
	<p th:text="${#httpSession.getId()}" />
	<!-- 	获取项目根目录 -->
	<p  th:text="${#httpServletRequest.getServletContext().getRealPath('/')}" />
	<hr />
	<!-- 	默认获取request中的数据 -->
	<p th:text="'requestMessage = ' + ${requestMessage}" />
	<!-- 	获取session中的数据,需要使用session调用 -->
	<p th:text="'sessionMessage = ' + ${session.sessionMessage}" />
	<!-- 	获取application中的数据,需要使用application调用 -->
	<p th:text="'applicationMessage = ' + ${application.applicationMessage}" />

6、条件判断

6.1 th:if
满足条件的显示
6.2 th:unless
不满足条件的显示

  <div th:unless="${user == null}" th:object="${user}">
        <div th:text="*{username}"></div>
        <div th:text="*{password}"></div>
    </div>
    <div th:if="${user == null}">
        暂无数据
    </div>

6.3 当条件不为bool类型时的判断依据
不只是布尔值的 true 和 false, th:if 表达式返回其他值时也会被认为是 true 或 false,规则如下:
boolean 类型并且值是 true, 返回 true
数值类型并且值不是 0, 返回 true
字符类型(Char)并且值不是 0, 返回 true
String 类型并且值不是 “false”, “off”, “no”, 返回 true
不是 boolean, 数值, 字符, String 的其他类型, 返回 true
值是 null, 返回 false

7. 循环渲染

//list是数组 user是list中的元素对象
//th:object="${user}" 下面省略user.
   <ul>
        <li th:each="user,eachInfo:${list}" th:object="${user}">
            <div th:text="*{username}"></div>
            <div th:text="*{password}"></div>
            <div th:text="${eachInfo}"></div>
        </li>
    </ul>
//userInfo是个数组
        <tr th:each="user,userInfo:${ulist}" >
            <td th:text="${userInfo.index}"></td>
            <td th:text="${user.username}"></td>
            <td th:text="${user.password}"></td>
        </tr>

th:each="【数组的每一项】,【遍历的信息】:【遍历的数组】"

上一篇:linux编写学生管理系统


下一篇:LeetCode刷题记录1--三数之和