中国外贸导航网企业网站seo多少钱
news/
2025/9/24 3:36:01/
文章来源:
中国外贸导航网,企业网站seo多少钱,怎样保存网站资料 做证据,找个男做那个视频网站好01、Thymeleaf 官网地址#xff1a;Thymeleafhttps://www.thymeleaf.org/ 简介 Thymeleaf是一种服务器端Java模板引擎#xff0c;用于将数据渲染为HTML、XML、JavaScript等格式#xff0c;并在Web浏览器中呈现给用户。 具体来说#xff0c;Thymeleaf充当着视图层的角色Thymeleafhttps://www.thymeleaf.org/ 简介 Thymeleaf是一种服务器端Java模板引擎用于将数据渲染为HTML、XML、JavaScript等格式并在Web浏览器中呈现给用户。 具体来说Thymeleaf充当着视图层的角色与控制器和模型一起构成了典型的MVC(模型-视图-控制器)设计模式中的视图部分。 Thymeleaf模板引擎允许我们在模板中使用HTML标记、JavaScript表达式和Thymeleaf表达式等以动态地生成Web页面。Thymeleaf提供了一些特殊的属性和标签以支持与控制器和模型之间的数据绑定和交互。 相比于传统的前端技术(如HTML、CSS和JavaScript)Thymeleaf更注重后端的处理逻辑和数据交互。Thymeleaf能够从服务器端动态地生成页面这意味着我们可以将服务器端的数据直接渲染到页面上从而减少了大量的前端开发工作。同时由于Thymeleaf能够与后端Java代码无缝集成因此我们可以很方便地使用Java提供的各种类库和框架进一步简化了开发工作。 为什么使用thymeleaf 因为jsp页面存在劣势它的本质是Servlet还是一个类只要是类就离不开JVM。我们无法通过浏览器直接查看JSP页面的效果这不便于前端页面的实现。 替代JSP 1、模板引擎具备JSP的功能但是比JSP更加强大可以直接通过浏览器查看页面效果。 2、前后端分离Vue。 简介Thymeleaf 的特点 动静结合Thymeleaf 既可以直接使用浏览器打开查看页面的静态效果也可以通过 Web 应用程序进行访问查看动态页面效果。 开箱即用Thymeleaf 提供了 Spring 标准方言以及一个与 SpringMVC 完美集成的可选模块可以快速地实现表单绑定、属性编辑器、国际化等功能。 与 SpringBoot 完美整合SpringBoot 为 Thymeleaf 提供了的默认配置并且还为 Thymeleaf 设置了视图解析器因此 Thymeleaf 可以与 Spring Boot 完美整合。 Thymeleaf 通过在 html 标签中增加额外属性来达到“模板数据”的展示方式 !DOCTYPE html html langen xmlns:thhttp://www.thymeleaf.org head meta charsetUTF-8 titleTitle/title /head body p th:text${username}Original Value/p /body /html 02、物理视图和逻辑视图 2.1、物理视图 请求转发到一个HTML页面时使用的完整的转发路径就是物理视图。 例如/pages/user/index.html 如果我们把所有的HTML页面都放在某个统一的目录下那么转发地址就会呈现出明显的规律 /pages/user/login.html /pages/user/login_success.html /pages/user/regist.html /pages/user/regist_success.html 规律路径的开头都是/pages/user/ 路径的结尾都是.html 所以路径开头的部分我们称之为视图前缀路径结尾的部分我们称之为视图后缀。 2.2、逻辑视图 物理视图视图前缀逻辑视图视图后缀 视图前缀 逻辑视图 视图后缀 物理视图 /pages/user/ login .html /pages/user/login.html /pages/user/ login_success .html /pages/user/login_success.html 03、Thymeleaf 语法 3.1、引入命令空间 !DOCTYPE HTML html xmlns:thhttp://www.thymeleaf.org head titleIndex Page/title meta http-equivContent-Type contenttext/html; charsetUTF-8 / /head body p th:text${message}Welcome to BeiJing!/p /body /html 注意‘xmlns:thhttp://www.thymeleaf.org’引入Thymeleaf命名空间。 3.2、常用标签 3.2.1、th:text 作用替换标签的文本原始值。 !-- 使用【字面量值】替换标签体原始值-- h1 th:textHelloWorld标签体原始值/h1 !-- 使用域中数据替换标签体原始值 -- h1 th:text${username}这里要显示一个动态的username/h1 3.2.2、th:属性名 作用替换指定属性的属性值 input typetext nameusername th:value${username}/ 3.3、常用表达式 语法 描述 作用 ${...} 变量表达式 变量表达式 是最常用的一种表达式它主要可以获取变量的值。 *{...} 选择表达式 消息表达式 主要是用于读取属性文件.properties中的值它常常用于国际化。 #{...} 消息表达式 选择表达式 我们也称为是星号表达式它与 变量表达式 的区别是变量表达式 的对象取的是整个上下文中的变量而 选择表达式 的对象取的是当前对象中的变量。这样做的好处是只需要在当前对象中取不需要通过上下文去取在一定程度上提高了执行效率这也是性能上的一种优化。 {...} 链接表达式 链接表达式 主要在页面中有链接的地方使用。 ~{...} 分段表达式 分段表达式 主要用于模板布局时的引用。也就是在一个页面中引入另一个页面中的内容。 3.3.1、案例 1)、变量表达式 !-- 获取 name 变量的值 -- p th:text${name}/p 2)、选择表达式 !-- book 中从上下文中取的一个变量 -- div th:object${book} !-- title 是 book 中的属性 -- span th:text*{title}/span /div 其中 th:object 的意思是用来接受后台传过来的对象。 3)、消息表达式 !-- 读取属性文件中 key 为 name 的值 -- p th:text#{name}/p 注意 我们必须先要配置属性文件所在位置在项目配置文件中配置以下内容 spring: messages: basename: msg 4)、链接表达式 a th:href{/result}.../a !--整个页面 href和src属性的标签自动拼接项目地址 http://ip:端口/项目名/ -- base th:href{/} th:src{/} 5)、分段表达式 首先我们准备两个页面分别是 result.html 和 foot.html我们在 result.html 中引入 foot.html 的内容。 result.html body p这是 result.html 页面/p div th:insert~{foot :: copy}/div /body foot.html body div th:fragmentcopy copy; 2020 a hrefhttp://www.baidu.com百度/a /div /body 3.4、内置对象 所谓内置对象其实就是在Thymeleaf的表达式中可以直接使用的对象。 基本对象 对象 描述 #ctx 上下文对象 #vars 同#ctx表示上下文变量 #locale 上下文本地化特定的地理区域变量可参考java.util.Locale #request HttpServletRequest 对象可参考javax.servlet.http.HttpServletRequest #response HttpServletResponse 对象可参考javax.servlet.http.HttpServletResponse #session HttpSession 对象可参考javax.servlet.http.HttpSession #servletContext ServletContext 对象可参考javax.servlet.ServletContext 工具类对象 对象 描述 #dates 日期时间工具类 #strings 字符串工具类 #lists List集合工具类 #numbers 数字工具类 #calendars 日历工具类 #objects 对象工具类 #bools 布尔工具类 #arrays 数组工具类 #sets Set工具类 #maps Map工具类 处理空值 通过加问号来判断前面的值是否为空防止报错。 p th:text${data?.name}/p 示例 #ctx !-- zh_CN -- p th:text${#ctx.getLocale()}/p !-- Welcome to BeiJing! -- p th:text${#ctx.getVariable(message)}/p !-- true -- p th:text${#ctx.containsVariable(message)}/p #vars !-- zh_CN -- p th:text${#vars.getLocale()}/p !-- Welcome to BeiJing! -- p th:text${#vars.getVariable(message)}/p !-- true -- p th:text${#vars.containsVariable(message)}/p #locale !-- zh_CN -- p th:text${#locale}/p !-- CN -- p th:text${#locale.country}/p !-- 中国 -- p th:text${#locale.displayCountry}/p !-- zh -- p th:text${#locale.language}/p !-- 中文 -- p th:text${#locale.displayLanguage}/p !-- 中文 (中国) -- p th:text${#locale.displayName}/p #request !-- HTTP/1.1 -- p th:text${#request.protocol}/p !-- http -- p th:text${#request.scheme}/p !-- localhost -- p th:text${#request.serverName}/p !-- 8080 -- p th:text${#request.serverPort}/p !-- GET -- p th:text${#request.method}/p !-- /standard-expression-syntax/variables -- p th:text${#request.requestURI}/p !-- http://localhost:8080/standard-expression-syntax/variables -- p th:text${#request.requestURL}/p !-- /standard-expression-syntax/variables -- p th:text${#request.servletPath}/p !-- java.util.Collections$3203646fe -- p th:text${#request.parameterNames}/p !-- {q[Ljava.lang.String;3308c69f} -- p th:text${#request.parameterMap}/p !-- qexpression -- p th:text${#request.queryString}/p 注意请求地址的 URL 参数直接通过#request.x是取不出来的需要使用param.x语法来取出。如URL/standard-expression-syntax/variables?qexpression取出 q 参数的正确方式 p th:text${param.q}/p #response !-- 200 -- p th:text${#response.status}/p !-- 8192 -- p th:text${#response.bufferSize}/p !-- UTF-8 -- p th:text${#response.characterEncoding}/p !-- text/html;charsetUTF-8 -- p th:text${#response.contentType}/p #session !-- 2BCB2A0EACFF2D9D249D9799431B5127 -- p th:text${#session.id}/p !-- 1499786693244 -- p th:text${#session.lastAccessedTime}/p !-- fanlychie -- p th:text${#session.getAttribute(user).name}/p 注意放到会话里面的对象直接通过#session.x是取不出来的需要使用session.x语法来取出。如取出会话里面的 user 对象的正确方式 p th:text${session.user.name}/p #dates !--2022年9月18日 GMT08:00 下午1:40:48-- p th:text${#dates.format(myDate)}/p !--2022-09-18-- p th:text${#dates.format(myDate, yyyy-MM-dd)}/p !--2022-09-18 13:40:48-- p th:text${#dates.format(myDate, yyyy-MM-dd HH:mm:ss)}/p !--2022-- p th:text${#dates.year(myDate)}/p !--9-- p th:text${#dates.month(myDate)}/p !--Sun Sep 18 13:40:49 GMT08:00 2022-- p th:text${#dates.createNow()}/p #strings !--HELLO WORLD-- p th:text${#strings.toUpperCase(myStr)}/p !--2-- p th:text${#strings.indexOf(myStr,ll)}/p !--llo-- p th:text${#strings.substring(myStr, 2, 5)}/p !--hello worldJava-- p th:text${#strings.concat(myStr, Java)}/p !--11-- p th:text${#strings.length(myStr)}/p !--5-- p th:text${#strings.length(happy)}/p !--true-- p th:text${#strings.contains(myStr, hello)}/p #lists !--3-- p th:text${#lists.size(myList)}/p !--true-- p th:text${#lists.contains(myList, 1)}/p !--false-- p th:text${#lists.isEmpty(myList)}/p !--[1, 2, 3]-- p th:text${#lists.sort(myList)}/p #numbers !--¥12.25-- p th:text${#numbers.formatCurrency(myNumber)}/p !--0012.2-- p th:text${#numbers.formatDecimal(myNumber, 4, 1)}/p 3.4、字符串拼接 在Thymeleaf中可以使用运算符进行字符串拼接。例如 p th:textHello, ${user.name} !默认问候/p 3.5、条件比较 Thymeleaf支持常见的条件比较如、!、、等。例如 div th:if${user.age} 18成年用户/div 3.6、switch多分支 Thymeleaf支持switch语句用于多分支条件判断。例如 div th:switch${user.role} p th:caseadmin管理员/p p th:caseuser普通用户/p p th:case*未知角色/p /div 3.7、循环 Thymeleaf支持th:each属性用于遍历集合。例如 ul li th:eachitem : ${items} th:text${item.name}默认列表项/li /ul 3.8、逻辑运算符 在Thymeleaf中我们可以使用加、减-、乘*、除/和取余%等基本算术运算符来进行数值计算。这些运算符的使用方法与传统的编程语言类似可以直接应用在表达式中实现数值的加减乘除等操作。 例如 p th:text${user.age} 1年龄加一/p 3.9、内联 Thymeleaf支持内联表达式用于在文本和属性中直接插入表达式。这种表达式允许我们在文本内容和HTML属性中直接插入动态数据从而实现页面内容的灵活定制。例如 p你好[[${user.name}]]/p 04、Thymeleaf 与 springboot整合 4.1、导入依赖 !--thymeleaf-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-thymeleaf/artifactId /dependency 4.2、页面引入命名空间 xmlns:thhttp://www.thymeleaf.org 到这里页面就可以使用thymeleaf的语法注意页面要经过控制器。 4.3、静态资源项目名直接访问 添加配置 #开放静态资源目录这个配置目录会覆盖默认配置classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/ spring: resources: static-locations: classpath:/static/,file:${file.dir} #资源目录 file: #资源根目录 dir: D:/data 这样D盘的data目录下的资源直接可以使用http://IP地址:端口/资源名
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914736.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!