Thymeleaf 教程

设置任何属性的值

假设我们的杂货店网站需要发布了一份实时消息,并且我们希望我们的用户能够订阅它,因此我们创建了一个带有表单的 /WEB-INF/Templates/Subscribe.html 模板:

<form action="subscribe.html">
  <fieldset>
    <input type="text" name="email" />
    <input type="submit" value="Subscribe!" />
  </fieldset>
</form>

与 Thymeleaf 一样,这个模板开始时更像是一个静态 HTML 原型,而不是 Web 应用程序的模板。首先,我们表单中的 action 属性静态链接到模板文件本身,因此没有必要重写有用的 URL。其次,submit 按钮中的 value 属性使其以英语显示文本,但我们希望它是国际化的。

然后输入 th:attr 属性,使用该属性动态给 action 和 submit 按钮设置值,如下:

<form action="subscribe.html" th:attr="action=@{/subscribe}">
  <fieldset>
    <input type="text" name="email" />
    <input type="submit" value="Subscribe!" th:attr="value=#{subscribe.submit}"/>
  </fieldset>
</form>

这个概念非常直接:th:attr 属性简单地接受一个表达式,为一个属性赋值(如:action 属性)。在创建了相应的控制器和消息文件后,处理这个文件的结果将如下:

<form action="/gtvg/subscribe">
  <fieldset>
    <input type="text" name="email" />
    <input type="submit" value="¡Suscríbe!"/>
  </fieldset>
</form>

除了新属性值之外,您还可以看到应用程序上下文名称已自动添加到 /gtvg/subscribe 中的 URL基名前。

XML 规则不允许在一个标记中设置一个属性两次,因此,th:attr 属性将采用逗号分隔的赋值列表,如下所示:

<img src="../../images/gtvglogo.png" 
     th:attr="src=@{/images/gtvglogo.png},title=#{logo},alt=#{logo}" />

引擎渲染后,输出:

<img src="/gtgv/images/gtvglogo.png" title="Logo de Good Thymes" alt="Logo de Good Thymes" />
说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号