返回顶部
首页 > 资讯 > 后端开发 > JAVA >SpringMvc学习之旅与Thymeleaf的常用用法
  • 815
分享到

SpringMvc学习之旅与Thymeleaf的常用用法

springspringMvcjavaspringboot学习 2023-10-09 19:10:14 815人浏览 泡泡鱼
摘要

 哈喽~大家好呀,这篇继续上篇的springMVC讲解与Thymeleaf的常用用法。  🥇个人主页:个人主页​​​​​              🥈 系列专栏:【Java框架】    &#

 哈喽~大家好呀,这篇继续上篇的springMVC讲解与Thymeleaf的常用用法。

 🥇个人主页:个人主页​​​​​             

🥈 系列专栏:【Java框架】   

🥉与这篇相关的文章:            

 【JAVAEE框架mybatisspring的整合(上)【JAVAEE框架】MyBatis与Spring的整合(上)_程序猿追的博客-CSDN博客
【JAVAEE框架】浅谈 aop 及代码实现【JAVAEE框架】浅谈 AOP 及代码实现_程序猿追的博客-CSDN博客
【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 ioP【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP_程序猿追的博客-CSDN博客

目录

一、前言

1、ModelAndView 详解

二、Servlet重定向forward与redirect

1、Model

三、thymeleaf 的用法

1、Thymeleaf 的特点

2、常用的语法

3、th属性


一、前言

1、ModelAndView 详解

前面写到,当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。

ModelAndView 当中包含了一个model属性和一个view属性,model其实是一个 ModelMap 类型,它是一个LinkedHashMap的子类,view包含了一些视图信息。

如何使用?

ModelAndView 通过 setViewName方法来实现跳转的页面。

eg:跳转的页面 mv.setViewName("user/userInfo"); 就是跳转到 user的userInfo页面

addObject

addObject 该方法用于设置【前端页面要显示的数据是什么】;该方法的参数:可以是任何一个有效的Java对象;该方法默认把对象,存放在当前请求中的;

通过设置键值对的方式来实现传给页面的值。

eg:

    
       
           

超市订单管理系统

       
       
       
${error }
                   
                                                       
                                                       
       
   

该页面是超市管理系统的登录页面,看 input 里面的name属性,用户名的name属性是usercode,那么addObject传值是 mv.addObject(“usercode”,xxx)来传值,注:记得大小写一定要对上

二、Servlet重定向forward与redirect

使用servlet重定向有两种方式,一种是forward,另一种就是redirect。forward是服务器内部重定向,客户端并不知道服务器把你当前请求重定向到哪里去了,地址栏的url与你之前访问的url保持不变。redirect则是客户端重定向,是服务器将你当前请求返回,然后给个状态标示给你,告诉你应该去重新请求另外一个url,具体表现就是地址栏的url变成了新的url。

eg:

ModelAndView mv = new ModelAndView("/user/save/result");//默认为forward模式  ​ModelAndView mv = new ModelAndView("redirect:/user/save/result");//redirect模式  

1、Model

Model 作用: 作为数据流转的载体,相当于前端的一个数据库,就好比后端中的user实体类所对应的数据库User, 从Model中获取数据比从后端的User实体类中获取数据更加方便。

img

如图,这是一个简单的实例,简单展示一下Model是怎么存储数据然后展示到前段页面的。

控制层

@Controller// 在Spring mvc 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在WEB.xml中配置@RequestMapping("/user")public class UserAction {​    @RequestMapping("/test04")    public String test02(Model model){​        User user = new User("Lucy","123456",18);        // return "userInfo";        System.out.println(user);        model.addAttribute("user",user);        return "userDetail";    }}

前台页面

    Title​    

用户详情页

   

姓名:${user.username}

   

密码:${user.passWord}

   

年龄:${user.age}

访问地址

http://localhost:8080/day09_SpringMvc01/user/test04

效果

如果使用 HttpServletRequest 或 HttpSession 来传数据呢?

    @RequestMapping("/test05")    public String test03(User user, Model model, httpservletRequest request, HttpSession session){        user = new User("Lucy","123456",18);        // return "userInfo";​        // user放入Session        // 用到Servletapi        request.setAttribute("requesTKEy","requestValue");        session.setAttribute("sessionKey","sessionValue");​        model.addAttribute("user",user);        return "userDetail";    }

前台页面

    Title    

用户信息页面

  姓名:${user.name}
  年龄:${user.age}
  requestValue:${requestKey}
  sessionValue:${sessionKey}

springMVC.xml 配置说明

                ​                                ​        web.xml 配置说明​      dispatcherServlet    org.springframework.web.servlet.DispatcherServlet          contextConfigLocation      classpath:springMVC.xml            dispatcherServlet    /  ​​

主要理解 DispatcherServlet 的流程理解,控制层传前台可以理解为使用了类似于键值对的方式进行获取值的。

三、thymeleaf 的用法

Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thymeleaf 支持 html 原型,其文件后缀为“.html”,因此它可以直接被浏览器打开,此时浏览器会忽略未定义的 Thymeleaf 标签属性,展示 thymeleaf 模板的静态页面效果;当通过 Web 应用程序访问时,Thymeleaf 会动态地替换掉静态内容,使页面动态显示。

使用它,需要在 html 标签中,增加额外属性来达到 “模板+数据” 的展示方式,示例代码如下。

        Title

欢迎您访问静态页面 HTML

效果

1、Thymeleaf 的特点

Thymeleaf 模板引擎具有以下特点:

动静结合:Thymeleaf 既可以直接使用浏览器打开,查看页面的静态效果,也可以通过 Web 应用程序进行访问,查看动态页面效果。

开箱即用:Thymeleaf 提供了 Spring 标准方言以及一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

多方言支持:它提供了 Thymeleaf 标准和 Spring 标准两种方言,可以直接套用模板实现 jsTL、 OGNL 表达式;必要时,开发人员也可以扩展和创建自定义的方言。

与 SpringBoot 完美整合:SpringBoot 为 Thymeleaf 提供了的默认配置,并且还为 Thymeleaf 设置了视图解析器,因此 Thymeleaf 可以与 Spring Boot 完美整合。

注:要使用 Thymeleaf 就要在 html 导入额外属性

xmlns:th="http://www.thymeleaf.org"

2、常用的语法

表达式

变量表达式:${...}

选择变量表达式:*{...}

链接表达式:@{...}

国际化表达式:#{...}

片段引用表达式:~{...}

本人常用的是变量表达式

假设获取 person 对象的 name属性,表达式形式如下:

${person.name}

3、th属性

属性描述示例
th:id替换 HTML 的 id 属性
th:text文本替换,转义特殊字符

hello

th:utext文本替换,不转义特殊字符
编程帮!'" >欢迎你
th:object在父标签选择对象,子标签使用 *{…} 选择表达式选取值。 没有选择对象,那子标签使用选择表达式和 ${…} 变量表达式是一样的效果。 同时即使选择了对象,子标签仍然可以使用变量表达式。

firstname

th:value替换 value 属性
th:with局部变量赋值运算
th:style设置样式
编程帮 www.biancheng.net
th:onclick点击事件
th:each遍历,支持 Iterable、Map、数组等。
th:if根据条件判断是否需要展示此标签
th:unless和 th:if 判断相反,满足条件时不显示
th:switch与 Java 的 switch case语句类似 通常与 th:case 配合使用,根据不同的条件展示不同的内容
编程帮 www.biancheng.net
th:fragment模板布局,类似 JSP 的 tag,用来定义一段被引用或包含的模板片段
插入的内容
th:insert布局标签; 将使用 th:fragment 属性指定的模板片段(包含标签)插入到当前标签中。
th:replace布局标签; 使用 th:fragment 属性指定的模板片段(包含标签)替换当前整个标签。
th:selectedselect 选择框选中
th:src替换 HTML 中的 src 属性
th:inline内联属性; 该属性有 text、none、javascript 三种取值, 在
th:action替换表单提交地址

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

来源地址:https://blog.csdn.net/aasd23/article/details/127457126

--结束END--

本文标题: SpringMvc学习之旅与Thymeleaf的常用用法

本文链接: https://lsjlt.com/news/426543.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringMvc学习之旅与Thymeleaf的常用用法
     哈喽~大家好呀,这篇继续上篇的SpringMvc讲解与Thymeleaf的常用用法。  🥇个人主页:个人主页​​​​​              🥈 系列专栏:【Java框架】    &#...
    99+
    2023-10-09
    spring springMvc java springboot 学习
  • SpringMVC 的学习冒险之旅
           哈喽~大家好呀,前段时间将 Spring 框架篇结束,从这篇开始,开始了我们 SpringMVC 的学习之旅了,这篇来看看SpringMVC 项目起步讲解吧。  🥇个人主页:个人主页​​​​​...
    99+
    2023-09-22
    spring springMvc java 服务器
  • HTML语法学习笔记:记录您的学习之旅
    HTML 简介 超文本标记语言 (HTML) 是互联网上网页的基础。它是一种标记语言,用于定义网页的结构和内容。学习 HTML 语法对于成为一名成功的网络开发者至关重要。 HTML 元素 HTML 中的基础构建块是元素。它们由一对尖括号...
    99+
    2024-03-09
    HTML、语法、学习、教程、网络开发
  • Java基础学习之ArrayList类概述与常用方法
    目录一、ArrayList类概述二、ArrayList类常用方法三、ArrayList存储字符串并遍历四、ArrayList存储学生对象并遍历五、ArrayList存储学生对象并遍历...
    99+
    2024-04-02
  • Python语法学习之进程的创建与常用方法详解
    目录进程的创建模块 - multiprocessing创建进程函数 - Process进程的常用方法start 函数join 函数kill 函数 与 is_alive 函数进程的相关...
    99+
    2024-04-02
  • Python语法学习之线程的创建与常用方法详解
    目录线程的创建与使用线程的创建 -threading线程对象的常用方法线程演示案例线程的问题线程的创建与使用 在Python中有很多的多线程模块,其中 threading ...
    99+
    2024-04-02
  • Python学习之字典的常用方法总结
    目录字典添加与修改方法利用[]处理字典的内置函数update字典的内置函数setdefault关于字典的注意事项再强调尝试做一个小练习获取字典的key与value字典中的values...
    99+
    2024-04-02
  • Python学习之集合的常用方法总结
    目录什么是集合?集合与列表的区别集合的创建方法集合的增删改add函数update函数remove函数clear函数del方法删除集合关于集合的重要说明获取两个集合交、并、差集的函数d...
    99+
    2024-04-02
  • Python学习之列表常用方法总结
    目录列表(元组)基本操作符回顾len()函数在列表与元组上的使用列表(元组)之间的累加与乘法in和notin在列表(元组)中的用法列表常用方法append()函数insert()函数...
    99+
    2024-04-02
  • SpringMVC之ModelAndView的用法
    Spring MVC中的ModelAndView是一个包含视图名称和模型数据的容器类。它用于将数据和视图一起返回给客户端。Model...
    99+
    2023-09-15
    SpringMVC
  • Python学习之字符串常用方法总结
    目录什么是对象Python万物皆是对象字符串的索引索引[]索引[:]字符串的常用方法find()函数与index()函数startswith()函数与endswith()函数capi...
    99+
    2024-04-02
  • jmeter学习指南之常用函数的使用
    说明:本文内容是基于jmeter3.0版本来编写,不同版本可能会有个别部分不一致,但是不会差别太大的。JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便。JMeter函数是一种特殊值,可用于除测试计划外的任何组件。函数调用...
    99+
    2023-06-05
  • Python学习之str 以及常用的命令
    目录str 字符串str 里有一些常用的命令1、capitalize2、casefold和lower3、center4、count5、endswith和startswith6、exp...
    99+
    2024-04-02
  • Python学习之12个常用基础语法详解
    目录前言1.多个字符串组合为一个字符串2.字符串拆分为子字符串列表3.统计列表中元素的次数4.使用try-except-else-block模块5.使用枚举函数得到key/value...
    99+
    2024-04-02
  • Python学习之.iloc与.loc的区别、联系和用法
    目录1.联系2.区别3.用法3.1行列全为从0开始顺序编号3.2有一行或列不是从0顺序编号3.3行或者列为非数字标签3.4 其他用法总结最近接触到数据科学,需要对一些数据表进行分析,...
    99+
    2024-04-02
  • Python 与机器学习的浪漫之旅,从新手到专家的一步之遥
    1. Python 与机器学习的邂逅 Python 作为一种简单易学、功能强大的编程语言,深受广大开发者的喜爱。而机器学习作为人工智能的一个分支,旨在让计算机学会如何从数据中学习并做出预测或决策。Python 与机器学习的结合,可谓是珠...
    99+
    2024-02-22
    Python 机器学习 人工智能 数据科学 神经网络
  • JavaSE学习之内部类及常用API
    目录1.内部类1.1内部类概述1.2成员内部类1.3局部内部类1.4匿名内部类1.5匿名内部类在开发中的使用2.常用API2.1Math2.2System2.3Object2.4Ar...
    99+
    2024-04-02
  • SpringMVC中常用注解与使用方法详解
    MVC简介 MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应...
    99+
    2024-04-02
  • 剖析 Python 变量与数据类型:深入浅出的学习之旅
    变量是计算机程序中存储数据的容器,其类型决定了存储数据的格式和操作。在 Python 中,变量和数据类型密不可分,深入理解两者对于有效利用语言至关重要。 Python 变量 标识符:变量名称,由字母、数字或下划线组成,不能以数字开头。 ...
    99+
    2024-04-02
  • Python学习之异常中的finally使用详解
    目录finally的功能与用法finally示例案例finally触发的必然性与优先级try语法伴随except或finally的必然性finally的历史今天我们来学习一下 异常语...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作