http://itutorial.thymeleaf.org/exercise/12
<select th:field="*{paymentMethod}" th:remove="all-but-first">
<option th:each="paymentMethod : ${paymentMethods}"
th:value="${paymentMethod}" th:text="${paymentMethod.description}">Credit card</option>
<option>Another payment method</option>
<option>Another payment method</option>
</select>
二、
如果你 th:field="*{paymentMethod}"的paymentMethod对象也是个list对象的话,multiple select也是直接使用就OK了。
但如果paymentMethod是个以,号分隔的字符串的话,则只能自己处理了下,thymeleaf还没找到怎么整呢,我的处理方式如下:
<select multiple="multiple" class="width-40 chosen-select" name="knowledgePointIdSet" data-placeholder="请选择课件分类...">
<option th:each="category:${knowPointList}" th:value="${category.id}"
th:selected="${#strings.contains(instance.knowledgePointIdSet,category.id)}"
th:text="${category.name}" >模块名称</option>
</select>
看你想要那个
文字语法
文字原型注释添加代码
文字编译级注释删除代码
自然语法
直接插入表达式
标准HTMLXML注释
Thymeleaf编译级注释块
Thymeleaf原型注释块
引入模板片段
模板片段传递参数
移除模板片段
if 和 unless
switch
设置任意属性
设置特殊属性
同时设置两个属性
添加属性值
混合值布尔属性
设置任意属性值
HTML5属性名
Messages
Variables
选择上的表达式
链接URLs
片段
文本值
数字值
布尔值
NULL值
文字标记
文本相加
文字替换
算术 *** 作
逻辑 *** 作
比较 *** 作
条件表达式
默认表达式
不 *** 作标记
数据转换格式化
预处理
标准表达式语法
设置文本内容
设置属性值
迭代
条件分支
模板布局
本地变量
注释
直接插入
文字模板模式
解耦模板逻辑
Thymeleaf是一个模板引擎,支持的模板类型有
HTML
XML
TEXT
JAVASCRIPT
CSS
RAW
标准表达式语法
Messages
语法:#{...}
示例:
#{home.welcome(${session.user.name})} home.welcome=Hello {0}!12Variables
语法:${...}
示例:
${today} ${param.user.name} ${session.user.name} ${application.user.name} ${person.createCompleteNameWithSeparator('-')}12345特殊变量:
选择上的表达式
语法:*{...}
示例:
*{name} = ${user.name} //th:object=${user} = ${#object.name}123链接URLs
语法:@{...}
示例:
@{http://www.thymeleaf.org} @{user/login.html} @{/itemdetails?id=3} @{~/billing/processInvoice} @{//code.jquery.com/jquery-2.0.3.min.js} @{/order/details(orderId=${o.id})} @{/order/{orderId}/details(orderId=${o.id})}1234567片段
语法:~{...}
示例:
~{footer :: copy}1文本值
语法:'...'
示例:
'I\'m Beach Chou!'1数字值
语法: number
示例:
2016 3.14f12布尔值
语法: true, false
NULL值
语法:null
文字标记
语法: token
备注:只能使用A-Z, a-z, 0-9, ‘[‘, ‘]’, ‘.’, ‘-‘, ‘_’
示例:
IPhone71文本相加
语法:expression + expression
文字替换
语法:|…|
备注:内部只能使用变量
示例:
|The name is ${name}|1算术 *** 作
语法:+, -, *, /, %, div, mod
示例:
1 + 11逻辑 *** 作
语法: and, or, not
示例:
${con} and ${co}1比较 *** 作
语法:gt, lt, ge, le, eq, ne
示例:
3 gt 21条件表达式
语法:
If-then: (if) ? (then)
If-then-else: (if) ? (then) : (else)
示例:
${con} ? true : false1默认表达式
语法:
Default: (value) ?: (defaultvalue)
示例:
${con} ?: default1不 *** 作标记
语法: _
数据转换/格式化
语法:${{...}}, *{{...}}
示例:
${{user.lastAccessDate}}1预处理
语法: __...__
设置文本内容
语法:th:text="...", th:utext="..."
备注:text转义,utext不转义
设置属性值
设置任意属性
语法:th:attr="attrname=..."
示例:
th:attr="class='main'"1设置特殊属性
语法: th:name="..."
示例:
th:class="'main'"1同时设置两个属性
语法:
th:alt-title="..." th:lang-xmllang="..."12示例:
th:alt-title="${title}"1添加属性值
语法:
th:attrappend="attr1=...,attr2=..." th:attrprepend="attr1=...,attr2=..." th:classappend="..." th:styleappend="..."1234示例:
th:classappend="'main'"1混合值布尔属性
语法:th:name="true"
示例:
th:checked="true"1设置任意属性值
语法:th:*="..."
HTML5属性名
语法: data-th-*=”…” = th:*="..."
迭代
语法:th:each="iter : ${iterated}"
示例:
th:each="prod : ${prods}" th:each="prod, iterStat : ${prods}" 迭代状态,默认为prodStat: iterStat.index iterStat.count iterStat.size iterStat.current iterStat.even iterStat.odd iterStat.first iterStat.last1234567891011条件分支
if 和 unless
语法:
th:if="..." th:unless="..."12switch
语法:
th:switch="..." th:case="..."12模板布局
引入模板片段
语法:
th:fragment="..." th:insert="..." th:replace="..."123示例:
th:insert="~{templatename::selector}" th:insert="~{templatename}" th:insert="~{::selector}" th:insert="~{}" th:insert="_"12345模板片段传递参数
示例:
th:fragment="frag (onevar,twovar)" th:replace="::frag (${value1},${value2})" th:replace="::frag (onevar=${value1},twovar=${value2})"123移除模板片段
语法:th:remove="..."
备注:可以使用的值,all, body, tag, all-but-first, none
本地变量
语法:th:with="name=..."
示例:
th:with="firstPer=${persons[0]}"1注释
标准HTML/XML注释
语法:
<!--...-->1示例:
<!-- User info follows -->1Thymeleaf编译级注释块
语法:
<!--/* ... */-->1示例:
<!--/*--><div>you can see me only before Thymeleaf processes me! </div><!--*/-->12345Thymeleaf原型注释块
语法:
<!--/*/ ... /*/-->123示例:
<!--/*/ <div th:text="${...}">... </div>/*/-->12345直接插入
直接插入表达式
语法:
th:inline="...", none, text, javascript, css [[...]] = th:text="..." [(...)] = th:utext="..."123示例:
var username = /*[[${session.user.name}]]*/ "Gertrud Kiwifruit"1文字模板模式
文字语法
语法:
[#element ...]...[/element] [#element ... /] 如果element为th:block可以省略123文字原型注释:添加代码
语法:
/*[+ ... +]*/123示例:
/*[+ var msg = "This is a working application"+]*/123文字编译级注释:删除代码
语法:
/*[- */ ... /* -]*/123示例:
/*[- */ var msg = "This is a working application"/* -]*/123自然语法
语法:
/*[[ ... ]]*/ ...1备注:前面的代码编译起效,后面的静态起效
示例:
var username = /*[[${session.user.name}]]*/ "Sebastian Lychee"1解耦模板逻辑
home.html
<!DOCTYPE html><html><body><table id="usersTable"><tr><td class="username">Jeremy Grapefruit</td><td class="usertype">Normal User</td></tr><tr><td class="username">Alice Watermelon</td><td class="usertype">Administrator</td></tr></table></body></html>123456789101112131415home.th.xml
<?xml version="1.0"?><thlogic> <attr sel="#usersTable" th:remove="all-but-first"> <attr sel="/tr[0]" th:each="user : ${users}"> <attr sel="td.username" th:text="${user.name}" /> <attr sel="td.usertype" th:text="#{|user.type.${user.type}|}" /> </attr> </attr></thlogic>123456789sel=”whatever”, selector可以为:
<whatever>
th:fragment=”whatever”
th:ref=”whatever”
<div class="form-group"><label>年龄</label> <select class="form-control" id="age">
<option value="1" th:selected="${sex=='1'}">男</option>
<option value="2" th:selected="${sex=='2'}">女</option>
</select></div>
Thymeleaf是XML/XHTML/HTML5的模板引擎,可以用在Web与非Web应用上。
Thymeleaf提供一种可被浏览器正确显示的、格式良好的模板创建方式,也可以用作静态建模。可以使用它创建经过验证的XML与HTML模板。开发者只需将标签属性添加到模板中即可。这些标签属性会在DOM(文档对象模型)上执行预先制定好的逻辑。可以使用它定义自己的模板属性集合,这样一来就可以计算自定义表达式并使用自定义逻辑。
Thymeleaf的模板也可以用作工作原型,Thymeleaf会在运行期替换掉静态值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)