thymeleaf遇到的各种神坑

本文介绍如何在Thymeleaf模板引擎中集成JavaScript,包括对象引用、URL参数传递、点击事件处理等关键操作,并展示了表单、下拉框及数据表格的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.javascript里面引用后端传过来的对象

JS部分代码一定要这样写,包括注释部分,也不能少,不要问我什么,去问变态作者吧

<script type="text/javascript" th:inline="javascript">
   /*<![CDATA[*/
    
   


   /*]]>*/
</script>

 

在js部分使用路径时候,要这样写:

var path = /*[[@{/permission/applyList}]]*/;

 

在url中带入多个参数写法:

<li><a th:href="@{/permission/applyList/(currentPage=${page.currentPage},pageSize=5 )}">5</a></li>

 

在标签中调用后台方法写法:

总条数:<span th:text="${page.getTotalCount()}"></span>&nbsp;&nbsp;

 

写onclick事件的写法(这个尤其变态)

<a href="#" th:onclick=" 'javascript:permission_audit('+ ${item.approveId} +') '"><span class="label label-primary">通过</span></a>
<a href="#" th:onclick=" 'javascript:permission_back('+ ${item.approveId} +') '"><span class="label label-danger">退回</span></a>

 

if判断的写法:

 <td th:if="${item.status == 1}"><span class="label label-success">已审核</span></td>

 

jsp include指令的替代写法

<div th:replace="head"></div>

 

form的action写法:

<form class="form-horizontal" th:action="@{/job/save}" method="post">

 

select下拉框迭代器+数据回显写法:

<div class="form-group">
	<label class="col-sm-2 control-label">任务类型</label>
	<div class="col-sm-10">
		 <select class="form-control " id="jobType" name="jobType" th:field="${jobInfo.jobType}">
			<option th:each="label : ${jobTypes}" th:value="${label.value}" th:text="${label.value}"></option>
		</select>
	</div>
</div>

 

form里面的input框数据回显写法

<div class="form-group">
	<label class="col-sm-2 control-label">执行参数</label> 
	<div class="col-sm-10">
		<input th:value="${jobInfo.execParams}" type="text" class="form-control" id="execParams" name="execParams"
			data-message-required="请填写执行参数." placeholder="请填写执行参数" />
	</div>
</div>

ID隐藏域写法

<div class="form-group">
	<div class="form-group">
		<input th:if="${jobInfo} != null" id="id" name="id" type="hidden" th:value="${jobInfo} ? ${jobInfo.id}" />
	</div>
</div>

 

table数据表格展示数据循环写法:

<table id="dataTable" class="table table-bordered table-striped">
	<thead>
		<tr>
			<th>Id</th>
			<th>名称</th>
		</tr>
	</thead>
	<tbody>
		<!-- 这里对应后端带回一个名叫"list"的变量 -->
		<tr th:each="item:${list}">
			<!-- fancybox超链接插件 -->
			<td>
				<a th:href="@{/job/detail/(id=${item.id})}" class="fancybox"  data-fancybox-type="iframe">
					<span th:text="${item.id}" class="label label-default"></span>
				</a>
			</td>
			<td th:text="${item.jobName}"></td>
		</tr>
	</tbody>
</table>

引用css,JS的写法

<link th:href="@{/plugins/fancybox/jquery.fancybox.css}" type="text/css" rel="stylesheet" />
<!-- DataTables -->
<script th:src="@{/plugins/datatables/jquery.dataTables.min.js}"></script>
<script th:src="@{/plugins/datatables/dataTables.bootstrap.min.js}"></script>

 

转载于:https://my.oschina.net/u/2338224/blog/1611910

<think>好的,我需要回答用户关于Thymeleaf的问题。首先,用户之前询问了关于KTV系统改进的问题,我提到了使用Spring Boot和Thymeleaf来实现界面渲染。现在用户想深入了解Thymeleaf。 首先,我应该回忆Thymeleaf的基本信息。Thymeleaf是一个Java模板引擎,主要用于Web应用,特别是Spring Boot项目。它支持HTML、XML等,能够与Spring MVC无缝集成。 用户可能想知道Thymeleaf的优势,比如自然模板、与Spring的整合、表达式语言等。需要解释自然模板的概念,即模板可以直接在浏览器中预览,无需后端渲染。 接下来,用户可能关心Thymeleaf的核心功能,比如变量替换、条件判断、循环、表单绑定、片段复用等。需要举例说明,比如使用th:text替换文本,th:if条件判断,th:each循环遍历集合。 还要提到Thymeleaf的模板布局功能,比如使用th:fragment和th:replace来复用页面片段,这对于保持一致的页眉页脚很有用。 另外,用户可能想知道Thymeleaf在实际项目中的使用场景,比如在Spring Boot中替代JSP,构建动静结合的页面,支持国际化等。需要说明它如何提升开发效率和维护性。 可能还需要对比其他模板引擎,比如JSP、Freemarker、Velocity,突出Thymeleaf的优点,如更好的HTML支持,更自然的模板处理,以及与Spring生态的紧密集成。 还要注意用户之前的问题中提到了Thymeleaf用于多端统一渲染,可以补充说明Thymeleaf如何适应不同前端设备,比如响应式设计,或者结合前端框架使用。 最后,确保回答结构清晰,分点说明,语言通俗易懂,避免过于技术化的术语,让用户能够理解Thymeleaf的作用和优势。</think>Thymeleaf 是一款现代化的 Java 模板引擎,专为 Web 应用和独立环境设计。以下是其核心特性的结构化解析: **一、技术定位** 1. 服务端模板引擎 - 主要处理 HTML/XML 模板渲染 - 支持 Spring Framework 深度集成(Spring Boot 官方推荐) - 适用场景:传统 MVC 架构、邮件模板、文档生成 **二、核心优势** 1. 自然模板技术 ```html <div th:text="${message}">静态预览内容</div> ``` - 模板文件无需服务端即可在浏览器直接预览 - 动态渲染时不破坏 HTML 结构验证 2. 强类型表达式系统 - Spring EL 表达式扩展:`${}`, `*{}`, `#{}` - 支持链式操作:`${user.address?.city}`(安全导航) - 内建工具对象:#dates, #strings, #lists 等 **三、架构特性** 1. 模块化设计 ```xml <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> </dependency> ``` - 标准方言(Spring 方言) - 自定义方言扩展机制 2. 渲染流程优化 - 模板缓存机制(开发模式可关闭) - 智能白标签处理 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值