字面量
文本值: ‘one text’ , ‘Another one!’ ,…<br /> 数字: 0 , 34 , 3.0 , 12.3 ,…<br /> 布尔值: true , false<br /> 空值: null<br /> 变量: one,two,… 变量不能有空格<br />**文本操作**<br /> 字符串拼接: +<br /> 变量替换: |The name is ${name}|<br />**数学运算**<br /> 运算符: + , - , * , / , %<br />**布尔运算**<br /> 运算符: and , or<br /> 一元运算: ! , not<br />**比较运算**<br /> 比较: > , < , >= , <= ( gt , lt , ge , le )<br /> 等式: == , != ( eq , ne )<br />**条件运算**<br /> If-then: (if) ? (then)<br /> If-then-else: (if) ? (then) : (else)<br /> Default: (value) ?: (defaultvalue)<br />**特殊操作**<br /> 无操作: _
循环
<tr th:each="student:${students}">
日期格式转换
<td th:text="${#calendars.format(student.birthday,'yyyy-MM-dd')}"></td>
三元表达式
<td th:text="${student.state}==0?'未在读':'在读'"></td>
</tr>
将post请求转换成delete请求
<a class="delete" th:href="@{/delete/}+${student.xh}">删除</a>
<form action="" method="post">
<input type="hidden" name="_method" value="DELETE"/>
</form>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(function (){
$(".delete").click(function () {
var href=$(this).attr("href");
$("form").attr("action",href).submit();
return false;
})
});
</script>
下拉列表回显
班级:<select name="gid">
<option value="">全部</option>
<option th:each="grade:${grades}" th:value="${grade.gid}"
th:text="${grade.gname}" th:selected="${XNG.gid} eq ${grade.gid}"></option>
</select>
单选框回显
<p>性别:男<input type="radio" name="sex" th:checked="${student.sex} eq '男'? 'checked':'false'" value='男'>
ajax异步请求
<p>学号:<input type="text" name="xh" id="xueHao">
<span th:id="show"></span></p>
<script Charset="UTF-8" src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(function(){ //jquery的加载事件
//失去焦点 触发的事件
$("#xueHao").blur(function(){
var xh1=parseInt($("#xueHao").val())
//使用jquery的post方法发送异步请求获取服务器返回的学生json数据
// $.post("服务器地址",给服务器传递的参数,回调函数,"服务器返回类型:json,html,text");
$.post("getXh",{xh:xh1},function(data){
//data代表服务器返回的数据
$("#show").text(data);
},"html")
});
});
</script>
获取当前循环次数
<tr th:each="file,fileStat:${files}">
<td th:text="${fileStat.count}"></td>
</tr>
1.file指的是当前循环的对象的变量名称,可以随意定义,但要于下面 “ . 属性”引用保持一致相当于增强for循环的临时变量;
2.fileStat指当前循环对象状态的变量(可选,默认就是你第一步设置的对象变量名称+ Stat)
3.${files }是当前循环的集合
fileStat称作状态变量,属性有:
index:当前迭代对象的index(从0开始计算)
count: 当前迭代对象的index(从1开始计算)
size:被迭代对象的大小
current:当前迭代变量 //proStat.current等同pro
even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算)
first:布尔值,当前循环是否是第一个
last:布尔值,当前循环是否是最后一个
页面跳转查询条件回显问题
查询条件的表单
<form method="get" action="/" id="form1">
<input type="hidden" name="pn" id="setPage" value="">//隐藏域
<input type="submit" value="查询">
</form>
页面显示
<tr>
<td colspan="9" align="center">
<div align="center">
当前第 [[${page.pageNum}]] 页/
总计 [[${page.pages}]] 页/
共 [[${page.total}]] 条记录
 
<span th:if="${page.pageNum>1}">
<a class="page" th:href="1">首页</a>
<a class="page" th:href="${(page.pageNum)-1}">上一页</a></span>
<span th:each="num:${page.getNavigatepageNums()}">
<a class="page" th:href="${num}">[[${num}]]</a>
</span>
<span th:if="${page.pageNum<page.pages}" >
<a class="page" th:href="${(page.pageNum)+1}">下一页</a>
<a class="page" th:href="${page.pages}">尾页</a></span>
</div>
</td>
</tr>
将跳转页面的超链接换成表单提交
$(function () {
$(".page").click(function () {
var href=$(this).attr("href");//获取超链接中的值
$("#setPage").val(href);//将值赋给隐藏域
$("#form1").submit(); //提交表单
return false;//阻止超链接行为
})
})
抽取公共页面
th:fragment=”head”
th:insert: 将被引用的模板片段插⼊到自己的标签体中
th:include: 将被引用的模板片段替换掉自己
th:replace:类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容。
th:include=”~{commonPage/common::topnav}”
th:inline=”javascript”内联添加在 JavaScript标签中
页面导航栏
<nav aria-label="...">
<ul class="pagination">
<!-- 左箭头-->
<th:block th:if="${page.current> 1}">
<li>
<a class="page" th:href="(1)" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
</th:block>
<th:block th:unless="${page.current> 1}">
<li class="disabled">
<a class="page" th:href="(1)" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
</th:block>
<!-- end-->
<!-- 导航栏-->
<th:block th:each="pages:${pages}">
<th:block th:if="${pages}==${page.current}">
<li class="active">
<a class="page" th:href="${pages}" th:text="${pages}">
<span class="sr-only">(current)</span>
</a>
</li>
</th:block>
<th:block th:unless="${pages}==${page.current}">
<li>
<a class="page" th:href="${pages}" th:text="${pages}">
<span class="sr-only">(current)</span>
</a>
</li>
</th:block>
</th:block>
<!-- end-->
<!-- 右箭头-->
<th:block th:if="${page.current < page.pages}">
<li>
<a class="page" th:href="${page.current+1}">
<span aria-hidden="true">»</span>
</a>
</li>
</th:block>
<th:block th:unless="${page.current+1}">
<li class="disabled">
<a class="page" th:href="${page.current+1}">
<span aria-hidden="true">»</span>
</a>
</li>
</th:block>
<!-- end-->
</ul>
</nav>
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)