如何使用#{field'variable'}

时间:2010-11-12 03:52:44

标签: java templates playframework

我阅读了文档http://www.playframework.org/documentation/1.1/tags#ageta但我没理解。

有人能提供更好,更容易理解的例子吗?

1 个答案:

答案 0 :(得分:3)

这实际上是一种避免重复复制和粘贴大量HTML然后更改其中的十几个小细节的方法。

他们在文档中给出的起始示例(我知道你已经读过,但我在这里引用以便于参考)是这样的:

<p>
  <label>&{'user.name'}</label>
  <input type="text" id="user_name" name="user.name" value="${user?.name}" class="${errors.forKey('user.name') ? 'has_error' : ''}">
  <span class="error">${errors.forKey('user.name')}</span>
</p>

如果您想从页面上的标记开始,然后在表单中添加第二个字段,则必须复制/粘贴整个块,然后更改&{'user.name'}user_name,{ {1}},user.name${user?.name}user.name(每个单独引用相同的基本字段)只是为了让新标记应用于您的新字段。

这只是打字比我们中的一些人愿意承担的只是为了添加一个字段到一个形式。

替换user.name允许的是:

#{field 'foo'}

这里的优点是#{field 'user.name'} <p> <label>&{field.name}</label> <input type="text" id="${field.id}" name="${field.name}" value="${field.value}" class="${field.errorClass}"> <span class="error">${field.error}</span> </p> #{/} 恰好出现在一个地方。如果您要复制/粘贴 标记以添加其他字段,则必须只进行一次替换:user.name标记中的那个。< / p>

最终结果是,您可以更轻松地为表单上的许多字段开发标准标记,而无需进行大量易于出错的手动替换标签,名称,ID,当前值,错误消息,类等。等等。