Textarea的常用属性thymeleaf

文章目录

  • textarea
  • thymeleaf
    • 1.基础使用
    • 2.代码块的切换
    • 3.链接表达式
      • 1)范例
    • 4.前后端
    • 5.遍历
      • 1.th:each
      • 2.th:switch
      • 3.添加属性
    • 组件替换
  • 每周总结

textarea

-webkit-scrollbar:width:0;让滚动条隐藏,宽度为0
resize:none 禁止textarea可以手动拉伸,
overflow-y:visible 长度伸展可视

.reply-text {overflow-y: visible;&::-webkit-scrollbar {width: 0;}resize: none;outline: none;font-size: 20px;border-radius: 5px;border: 1.2px solid #f26026;width: 100%;min-height: 80px;margin-bottom: 10px;}

在这里插入图片描述

通过监听input,实时判断是否有内容输入,若无内容输入,则按钮禁点

this.style.height = “inherit”;
this.style.height = ${this.scrollHeight}px
让文本框长度随输入内容的长度改变而改变

textarea.addEventListener("input", function (e) {if (textarea.value == "") {replyBtn.setAttribute("disabled", true);replyBtn.classList.add("disable");} else {replyBtn.removeAttribute("disabled");replyBtn.classList.remove("disable");}this.style.height = "inherit";this.style.height = `${this.scrollHeight}px`;
});

限制输入字数

textarea.onkeyup = function () {let ddl = document.querySelector(".ddl");let str = textarea.value;ddl.innerHTML = `还可输入${100 - textarea.value.length}`;if (textarea.value.length >= 100) {ddl.innerHTML = "还可输入0字";textarea.value = textarea.value.substr(0, 100);}
};

thymeleaf

1.基础使用

● th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7
● th:value:设置当前元素的value值,类似修改指定属性的还有th:src,th:href。优先级不高:order=6
● th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,详细往后看。优先级很高:order=2
● th:if:条件判断,类似的还有th:unless,th:switch,th:case。优先级较高:order=3
● th:insert:代码块引入,类似的还有th:replace,th:include,三者的区别较大,若使用不恰当会破坏html结构,常用于公共代码块提取的场景。优先级最高:order=1
● th:fragment:定义代码块,方便被th:insert引用。优先级最低:order=8
● th:object:声明变量,一般和*一起配合使用,达到偷懒的效果。优先级一般:order=4
● th:attr:修改任意属性,实际开发中用的较少,因为有丰富的其他th属性帮忙,类似的还有th:attrappend,th:attrprepend。优先级一般:order=5
在这里插入图片描述

用 | | 进行字符串的拼接 类似于es6中的反引号

在这里插入图片描述

<!DOCTYPE html>
<!--名称空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf 语法</title>
</head>
<body>
<h2>ITDragon Thymeleaf 语法</h2>
<!--th:text 设置当前元素的文本内容,常用,优先级不高--><p th:text="${thText}" />
<p th:utext="${thUText}" /><!--th:value 设置当前元素的value值,常用,优先级仅比th:text高-->
<input type="text" th:value="${thValue}" /><!--th:each 遍历列表,常用,优先级很高,仅此于代码块的插入-->
<!--th:each 修饰在div上,则div层重复出现,若只想p标签遍历,则修饰在p标签上-->
<div th:each="message : ${thEach}"> <!-- 遍历整个div-p,不推荐-->
<p th:text="${message}" />
</div>
<div> <!--只遍历p,推荐使用-->
<p th:text="${message}" th:each="message : ${thEach}" />
</div><!--th:if 条件判断,类似的有th:switch,th:case,优先级仅次于th:each, 其中#strings是变量表达式的内置方法-->
<p th:text="${thIf}" th:if="${not #strings.isEmpty(thIf)}"></p><!--th:insert 把代码块插入当前div中,优先级最高,类似的有th:replace,th:include,~{} :代码块表达式 -->
<div th:insert="~{grammar/common::thCommon}"></div><!--th:object 声明变量,和*{} 一起使用-->
<div th:object="${thObject}">
<p>ID: <span th:text="*{id}" /></p><!--th:text="${thObject.id}"-->
<p>TH: <span th:text="*{thName}" /></p><!--${thObject.thName}-->
<p>DE: <span th:text="*{desc}" /></p><!--${thObject.desc}-->
</div></body>
</html>

2.代码块的切换

<!--th:fragment定义代码块标识-->
<footer th:fragment="copy">&copy; 2011 The Good Thymes Virtual Grocery
</footer><!--三种不同的引入方式-->
<div th:insert="footer :: copy"></div>
<div th:replace="footer :: copy"></div>
<div th:include="footer :: copy"></div><!--th:insert是在div中插入代码块,即多了一层div-->
<div><footer>&copy; 2011 The Good Thymes Virtual Grocery</footer>
</div><!--th:replace是将代码块代替当前div,其html结构和之前一致-->
<footer>&copy; 2011 The Good Thymes Virtual Grocery
</footer><!--th:include是将代码块footer的内容插入到div中,即少了一层footer-->
<div>&copy; 2011 The Good Thymes Virtual Grocery
</div>

3.链接表达式

无参:@{/xxx}
有参:@{/xxx(k1=v1,k2=v2)} 对应url结构:xxx?k1=v1&k2=v2
引入本地资源:@{/项目本地的资源路径}
引入外部资源:@{/webjars/资源在jar包中的路径}

<link th:href="@{/webjars/bootstrap/4.0.0/css/bootstrap.css}" rel="stylesheet">
<link th:href="@{/main/css/itdragon.css}" rel="stylesheet">
<form class="form-login" th:action="@{/user/login}" th:method="post" >
<a class="btn btn-sm" th:href="@{/login.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/login.html(l='en_US')}">English</a>

1)范例

在这里插入图片描述
在这里插入图片描述
注意@{/。。。}大括号里边要用 / 开头表示根目录,不然渲染不到

4.前后端

在这里插入图片描述
通过th:object 可直接引用变量

<!--原始  -->
<h2 th:text="${user.username}"></h2>
<p th:text="${user.age}"></p>
<!-- 代码优化 -->
<div th:object="${user}"><h2 th:text="*{username}"></h2><p th:text="*{age}"></p>
</div>

在这里插入图片描述
若语句为true,则会显示标签中的内容“会员”

5.遍历

1.th:each

在这里插入图片描述
在这里插入图片描述

2.th:switch

在这里插入图片描述

3.添加属性

追加一个active属性
在这里插入图片描述
给最后一个元素追加属性(stat是自定义名字)
在这里插入图片描述

组件替换

在这里插入图片描述

在这里插入图片描述
也可以直接使用id不用th:fragment
在这里插入图片描述
在这里插入图片描述

每周总结

项目写的好累,头懵的快炸了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/617065.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第90步_异步通知实验

“异步通知”的核心就是信号&#xff0c;由“驱动设备”主动报告给“应用程序”的。 1、添加“EXTI3.c” #include "EXTI3.h" #include <linux/gpio.h> //使能gpio_request(),gpio_free(),gpio_direction_input(), //使能gpio_direction_output(),gpio_get_v…

本地web项目启起来后,无法在浏览器(chrome)看到源码,从而无法打断点;Framework Ignore list

问题描述 本地web项目启起来后&#xff0c;无法在浏览器(chrome)看到源码&#xff0c;从而无法打断点 其他浏览器没看&#xff0c;开发环境一致专注于chrome&#xff08;其余浏览器有测试同事提缺陷了&#xff0c;才会去看&#xff09;&#xff0c;其余浏览器有没有这个问题&…

Docker Redis Debian服务器版

Debian安装docker 1.使用官方脚本自动安装docker 安装命令如下&#xff1a; curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh 如果安装提示 -bash sudo command not found 则需要 #update sudo apt-get update sudo apt-get install sudo再执行…

基于FPGA的以太网相关文章导航

首先需要了解以太网的一些接口协议标准&#xff0c;常见的MII、GMII、RGMII时序&#xff0c;便于后续开发。 【必读】从MII到RGMII&#xff0c;一文了解以太网PHY芯片不同传输接口信号时序&#xff01; 介绍一款比较老的以太网PHY芯片88E1518&#xff0c;具有RGMII接口&#xf…

C#简单工厂模式的实现

using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…

大语言模型综述全新出炉:51页论文带你盘点LLM领域专业化技术

大语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域取得了显著的进步&#xff0c;为广泛的应用提供了一种非常有用的、与任务无关的基础。然而&#xff0c;直接应用 LLMs 去解决特定领域的复杂问题会遇到许多障碍&#xff0c;这些障碍源于领…

使用云服务器搭建CentOS操作系统

云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…

Zynq学习笔记--AXI 总线概述

目录 1. AXI总线概述 1.1 主要特点 1.2 通道功能 1.3 信号概览 2. AXI Interconnect 2.1 信号说明 2.2 内部结构 3. PS-PL AXI Interface 3.1 AXI FPD/LFP/ACP 3.2 Address Editor 3.3 地址空间 3.4 AXI-DDR 4. 通过ILA观察AXI信号 4.1 AXI 读通道 1. AXI总线概述…

ES6: set和map数据结构以及使用场景

ES6:set和map数据结构 一、Set 数据结构&#xff1a;二、使用场景&#xff1a;使用Set 进行去重三、Map 数据结构四、使用场景&#xff1a;使用Map进行树型数据懒加载刷新五、Set和Map的区别六、Map、Set的实际使用场景 Set 和 Map 是 ES6 中引入的两种新的数据结构&#xff0c…

下载了恶意软件怎么办,用这个软件可以解决 Mac电脑卸载软件 MacBook查杀病毒

随着苹果电脑在全球市场的普及&#xff0c;它们也日益成为恶意软件制作者的目标。这种趋势打破了许多人认为Mac系统不易受到病毒或恶意软件影响的传统观念。事实上&#xff0c;苹果电脑面临的恶意软件和安全威胁正在不断增多&#xff0c;这要求用户采取更加积极的措施来保护自己…

将OpenWrt 23.05.3部署到VMware ESXi

正文共&#xff1a;1234 字 38 图&#xff0c;预估阅读时间&#xff1a;2 分钟 前面把OpenWrt部署到了VMware workstation上&#xff08;VMware Workstation部署最新版OpenWrt 23.05.3&#xff09;。如果想把OpenWrt直接部署到ESXi上&#xff0c;你会发现转换镜像不能直接生成O…

Redis(哨兵模式)

什么是哨兵机制 问题: redis 主从复制模式下, 一旦主节点由于故障不能提供服务, 需要人工进行主从切换, 同时大量客户端需要被通知切换到新的主节点上, 对于有一定规模的应用来说, 对于人力的资源消耗会很大.解决: 通过哨兵对主从结构进行监控, 一旦出现主节点挂了的情况, 自动…