5.2 为指定的属性设置值
到目前为止,你可能觉得像:
<input type="submit" value="Subscribe!" th:attr="value=#{subscribe.submit}"/>
这样的标记片段,相当丑陋。在一个属性值的内部指定赋值操作可以是非常实用的,但是如果你不得不一直这么做的话,这并不是创建模版的最优雅的方式。
Thymeleaf和你意见一致,这也是在模版里几乎不使用th:attr的原因。通常,你会使用其它的th:*属性,为特定的标签属性设置值,而不是像th:attr一样为任何属性设置值。
例如,为了设置value属性,使用th:value:
<input type="submit" value="Subscribe!" th:value="#{subscribe.submit}"/>
这看起来好多了!让我们尝试对form标签里的action属性也做相同的操作:
<form action="subscribe.html" th:action="@{/subscribe}">
你还记得那些我们之前放进home.html的th:href吗?它们完全是同类属性:
<li><a href="product/list.html" th:href="@{/product/list}">Product List</a></li>
有类似的相当多的属性,它们中的每一个都对应了一个特定的HTML5属性:
| th:abbr | th:accept | th:accept-charset | 
| th:accesskey | th:action | th:align | 
| th:alt | th:archive | th:audio | 
| th:autocomplete | th:axis | th:background | 
| th:bgcolor | th:border | th:cellpadding | 
| th:cellspacing | th:challenge | th:charset | 
| th:cite | th:class | th:classid | 
| th:codebase | th:codetype | th:cols | 
| th:colspan | th:compact | th:content | 
| th:contenteditable | th:contextmenu | th:data | 
| th:datetime | th:dir | th:draggable | 
| th:dropzone | th:enctype | th:for | 
| th:form | th:formaction | th:formenctype | 
| th:formmethod | th:formtarget | th:fragment | 
| th:frame | th:frameborder | th:headers | 
| th:height | th:high | th:href | 
| th:hreflang | th:hspace | th:http-equiv | 
| th:icon | th:id | th:inline | 
| th:keytype | th:kind | th:label | 
| th:lang | th:list | th:longdesc | 
| th:low | th:manifest | th:marginheight | 
| th:marginwidth | th:max | th:maxlength | 
| th:media | th:method | th:min | 
| th:name | th:onabort | th:onafterprint | 
| th:onbeforeprint | th:onbeforeunload | th:onblur | 
| th:oncanplay | th:oncanplaythrough | th:onchange | 
| th:onclick | th:oncontextmenu | th:ondblclick | 
| th:ondrag | th:ondragend | th:ondragenter | 
| th:ondragleave | th:ondragover | th:ondragstart | 
| th:ondrop | th:ondurationchange | th:onemptied | 
| th:onended | th:onerror | th:onfocus | 
| th:onformchange | th:onforminput | th:onhashchange | 
| th:oninput | th:oninvalid | th:onkeydown | 
| th:onkeypress | th:onkeyup | th:onload | 
| th:onloadeddata | th:onloadedmetadata | th:onloadstart | 
| th:onmessage | th:onmousedown | th:onmousemove | 
| th:onmouseout | th:onmouseover | th:onmouseup | 
| th:onmousewheel | th:onoffline | th:ononline | 
| th:onpause | th:onplay | th:onplaying | 
| th:onpopstate | th:onprogress | th:onratechange | 
| th:onreadystatechange | th:onredo | th:onreset | 
| th:onresize | th:onscroll | th:onseeked | 
| th:onseeking | th:onselect | th:onshow | 
| th:onstalled | th:onstorage | th:onsubmit | 
| th:onsuspend | th:ontimeupdate | th:onundo | 
| th:onunload | th:onvolumechange | th:onwaiting | 
| th:optimum | th:pattern | th:placeholder | 
| th:poster | th:preload | th:radiogroup | 
| th:rel | th:rev | th:rows | 
| th:rowspan | th:rules | th:sandbox | 
| th:scheme | th:scope | th:scrolling | 
| th:size | th:sizes | th:span | 
| th:spellcheck | th:src | th:srclang | 
| th:standby | th:start | th:step | 
| th:style | th:summary | th:tabindex | 
| th:target | th:title | th:type | 
| th:usemap | th:value | th:valuetype | 
| th:vspace | th:width | th:wrap | 
| th:xmlbase | th:xmllang | th:xmlspace | 
 
                         
                                

