带你入门使用SSM+Thymeleaf先感受下基本运行和什么是SpringMVC吧

2023-11-17

通俗点讲SSM框架指的是Spring Boot+Spring MVC+Mybatis,Thymeleaf是一个页面模板
这篇文章旨在,教会创建一个SSM项目,和配合Thymeleaf进行项目开发。此文章图多,所以长度很长,但干货满满,如果想学会SSM框架的话,请坚持下去。
软件:idea2018版本关系不大
数据库:Mysql
首先新建一个项目:在这里插入图片描述
页面如上,选中Spring Initializr。这个东西大体上可以理解为一种快速创建项目模板的一个选项。
在这里插入图片描述
这个地方也可以选择不改,但如果想让项目目录结构更好看,我建议修改
然后下一步选择加入什么依赖,这一步可视作你要为你这个项目在创建是给Maven加入什么依赖:
在这里插入图片描述
下一步,选个目录点完成就可以了
在这里插入图片描述
点了完成后项目会开始创建,此时过程会花一些实践,因为如果没下过依赖包就会进行下载,下载过的会进行加载,而且有些依赖包需要访问国外所以速度你是知道的,建议把IDEA的默认maven仓库换成阿里的。网上由教程自己去看。
此时这是最开始的目录:
在这里插入图片描述
我们需要改成:
在这里插入图片描述
此时你点击右上角的运行项目,是运行不起来的,控制台会输出错误信息。原因是因为你在前面创建项目时,选择了mysql,大体意思是你要连上自己的数据库才可以。
在这里插入图片描述
然后此时打开application.properties文件,加入下面的代码,对项目进行配置,建一个叫mall的数据库我就不展示了,你应该要会而不是我教。

!--此处加上数据库的连接,3306/后面的mall是数据库名
!--serverTimezone是时区,我这个是东八区也就是中国北京时间,可不加,但有时进行某种操作时会报错
!--然后是本地Mysql的用户名和密码
!--然后com.mysql.cj.jdbc.Driver你们看别的教程可能有些人是没有cj的,是mysql.jdbc.Driver
!--这是因为mysql的版本问题,如何区分下一张图讲
spring.datasource.url=jdbc:mysql://localhost:3306/mall?serverTimezone=GMT%2B8
spring.datasource.username=root
!--密码输入自己设置的
spring.datasource.password=***
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
!--端口号
server.port=8080
!--mapping对应的就是resources下面的mapping目录。用于指向Mybatis文件所在位置
mybatis.mapper-locations=classpath:mapping/*.xml 
!--com.mall.entity是包目录。指向实体类
mybatis.type-aliases-package=com.mall.entity
!--输出Mybatis操作的信息格式
logging.level.com.mall.mapper=debug

如何区分很简单,就是看引入的依赖包,maven项目和jsp项目的不同之处就在于maven是一个仓库,他会为我们对包进行处理。如果你做过jsp就会知道jsp项目的包是要自己导入的(反正我是),maven仓库里的Mysql是8.0.18是一个很高的版本,自己导的话,可能就导个5.几就差不多了,问题就在这,高版本的Mysql的函数是在.cj里的,这和5.几是不一样的,这就是会报错的原因。
在这里插入图片描述
此时再运行,如下图,恭喜你,你的项目启动成功了,如果你心细,眼睛够好的话,你会发现有两处警告,这是因为创建项目时导入了Mybatis和thyemleaf两个包,警告是因为没有相应的文件。
在这里插入图片描述
然后创建项目这么久,让我们来快速在浏览器里显示一个页面感受下快感吧。
在controller(控制台)中新建一个java类取名CUser,templates中创建一个页面
在这里插入图片描述
CUser.java代码如上,请自己打,可以熟悉下基本流程。
userInfo.html页面中加入
在这里插入图片描述
如果你这些都做好了,就可以启动项目了,然后在浏览器中输入localhost:8080/userInfo或者127.0.0.1:8080/userInfo
8080是端口,可以修改,通过上面的application.properties修改。userInfo是请求的对象,还记得CUser.java里写在RequestMapping吗?这是请求的目标。

    /**
     * 控制请求的注解,默认是GET请求,POST请求先不讲
     * @return
     */
    @RequestMapping("userInfo")
    public String userInfo(){
        //返回在templates中名字叫userInfo的页面
        return "userInfo";
    }

然后会返回userInfo这个userInfo指的是templates里的页面,然后页面就会返回userInfo页面
在这里插入图片描述
到这里你只是简单的体验了下这个项目运行起来的感觉,此刻你感受到的只是Spring MVC。Mybatis和Thymeleaf你还没有用到。
现在我们加深你对Spring MVC的理解。
MVC=>(Model,View,Controller)=>(模型,视图,控制台)
控制台就是controller目录,所谓控制就是@RequestMapping(“userInfo”),此处声明了这个请求的名称userInfo.
视图就是templates中的页面
模型上面的例子没有用上,下图将会用上。
现在我们对CUser.java进行修改
在这里插入图片描述
userInfo.html改成
在这里插入图片描述
注意到这个了吗,我们现在已经加入了Thymeleaf的使用

<!--th:text="${**}"的作用就是使用模型Model里叫做message里存的信息-->
<a th:text="${message}"></a>

重新运行项目,再次输入UML,浏览器显示:
在这里插入图片描述
到此你已经能够运行项目和基本了解SpringMVC的运行流程和Thymeleaf的基本使用。
到此已经很长了,在下一篇里我会展示项目的更多使用操作,详解Mybatis该如何使用

现在感谢你看到这里,如果你运行结果如上图所示成功了,恭喜你跨入大门了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带你入门使用SSM+Thymeleaf先感受下基本运行和什么是SpringMVC吧 的相关文章

随机推荐

  • Qt的Tcp服务器多线程编程-附带代码展示

    Qt的Tcp服务器多线程编程 附带代码展示 该程序主要实现tcp服务器如何使用多线程的方式来连接多个客户端 此文章没有实现客户端的多线程编程 创建子线程时需要注意的点 1 子线程与主线程之间交互数据时 应采用信号槽的方式 2 子线程中实例化
  • Java基础:多线程join()方法

    join 让当前线程优先执行 JoinThread java public class JoinThread implements Runnable Override public void run for int i 0 i lt 100
  • iis中使用nginx实现反向代理负载均衡

    user nobody worker processes 1 error log logs error log error log logs error log notice error log logs error log info pi
  • vue+element实现树形上下拖拽,快速提升你的前端技能

    前言 随着前端技术的不断发展 越来越多的网站和应用需要使用树形控件来展示数据 而上下拖拽则是一个非常实用的交互方式 如果你正在寻找一种简单易用的树形控件实现上下拖拽的方法 那么本文将为你提供最佳解决方案 本文将介绍如何使用 vue 基于 e
  • Java中三种进制的数值常量

    package cn nxl2018 class Test 十进制常量赋值 void decimals byte b 10 short s 10 char ch 69 int i 10 long l 10l l L可加可不加 float f
  • 【Java面试】请你简单说一下Mysql的事务隔离级别

    一个工作了6年的粉丝 去阿里面试 在第一面的时候被问到 Mysql的事务隔离级别 他竟然没有回答上来 一直在私信向我诉苦 我说 你只能怪年轻时候的你 那个时候不够努力导致现在的你技术水平不够 好吧 关于这个问题 看看普通人和高手的回答 普通
  • 计算机网络总结 TCP协议 一

    tcp协议是什么 介绍一下 TCP Transmission Control Protocol 传输控制协议 是互联网协议族中的一种基于连接的 可靠的 面向字节流的传输协议 TCP协议提供了全双工通信 数据分段 重传机制 流量控制 拥塞控制
  • java中synchronized关键字

    1 synchronized关键字简介 synchronized是java中的一个关键字 在中文中为同步 也被称之为 同步锁 以此来达到多线程并发访问时候的并发安全问题 可以用来修饰代码块 非静态方法 静态方法等 修饰代码块时 给当前指定的
  • 事务提交后发送MQ消息

    前言 本文主要介绍关于MQ使用过程中 通过场景分析为什么要使用事务控制 以及事务如何实现 场景分析 为什么我们在使用MQ的时候需要考虑结合事务 试想一下 我们平时使用Mq发送消息的通用场景是不是 生产者和MQ集群建立连接 并发送消息 消费者
  • 《算法图解》总结第 6 章:广度优先搜索

    仅用于记录学习 欢迎批评指正 大神勿喷 系列文章目录 算法图解 总结第 1 章 二分查找 大O表示法 算法图解 总结第 2 章 数组和链表 选择排序 算法图解 总结第 3 章 while循环 递归 栈 算法图解 总结第 4 章 分而治之 快
  • 学成在线笔记+踩坑(12)——用户认证

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 目录 1 需求分析 2 认证模块 连接用户中心数据库 2 1 连接数据
  • Linux Ubuntu Shell命令(软件安装)

    软件安装命令 dpkg工具集 不会下载对应的依赖集 不好用 Ubuntu支持 deb结尾的安装包 Redhat支持 rpm结尾的安装包 命令 1 安装 sudo dpkg i 安装包名 sudo dpkg i vsftpd 3 0 2 1u
  • Flex布局详解

    目录 一 Flex 布局是什么 二 基本概念 三 容器的属性 3 1 flex direction属性 3 2 flex wrap属性 3 3 flex flow 3 4 justify content属性 3 5 align items属
  • 将Hypert-V转化为VM虚拟机

    一 准备工具 V2V Converter P2V Converter Converting VM Formats 二 操作步骤 第一步 选中要转化的镜像 第二步 选择目标的镜像格式 第三步 选择生成目录 完成后点击Finish 第五步 打开
  • 常用的相似度计算方法原理及实现

    在数据分析和数据挖掘以及搜索引擎中 我们经常需要知道个体间差异的大小 进而评价个体的相似性和类别 常见的比如数据分析中比如相关分析 数据挖掘中的分类聚类 K Means等 算法 搜索引擎进行物品推荐时 相似度就是比较两个事物的相似性 一般通
  • SeleniumLibrary4.5.0 关键字详解(四)

    SeleniumLibrary4 5 0 关键字详解 四 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • C++数据结构类的自实现,封装栈,循环队列

    my Queue h ifndef MY QUEUE H define MY QUEUE H class My Queue private int m queue 队列空间指针 int front 队头 int tail 队尾 int m
  • SQL Server(四) - 插入、更新和删除数据

    1 主要内容 通过SSMS 插入 更新和删除表数据 通过INSERT语句向表中插入数据 通过UPDATE语句更新表内数据 通过DELETE语句删除表内数据 使用INSERT UPDATE和DELETE语句的几个技巧2 使用INSERT语句插
  • Java lang3的 StringUtils.isNumeric(str)不能识别负数和小数

    Java lang3的 StringUtils isNumeric str 不能识别负数和小数 StringUtils isNumeric null false StringUtils isNumeric false StringUtils
  • 带你入门使用SSM+Thymeleaf先感受下基本运行和什么是SpringMVC吧

    通俗点讲SSM框架指的是Spring Boot Spring MVC Mybatis Thymeleaf是一个页面模板 这篇文章旨在 教会创建一个SSM项目 和配合Thymeleaf进行项目开发 此文章图多 所以长度很长 但干货满满 如果想