wicket:for 需要 wicket:label 吗?
Is wicket:label needed with wicket:for?
过去我为我的表单创建了这样的标签:
<label wicket:for="name"><wicket:label><wicket:message key="name"></wicket:message></wicket:label>:</label><input wicket:id="name" type="text"/>
我还需要使用 wicket:label
标签吗?我没有在 wicket 7 中使用 wicket:label
,它似乎工作正常。我可能不理解使用 wicket:label 的目的。似乎 wicket:label
只是附加标记。下面是我现在正在做的。这是正确的吗?:
<label wicket:for="name"><wicket:message key="name"></wicket:message>:</label><input wicket:id="name" type="text"/>
这个例子与Wicket XHTML tags
有关
查看 AutoLabelResolver
和 AutoLabelTextResolver
的 Java文档。
<label wicket:for="name">
由 AutoLabelResolver
处理。它通过在 HTML for
标签的属性。它还将 css 类 添加到 label 标记中,例如错误,因此您可以在出现错误时设置 label 标记中的文本样式。
<wicket:label>
有两个目的。如果您通过 key
属性(就像您所做的那样)或通过在标签之间添加一些文本为其赋值,则该文本将设置为 Java FormComponent 的标签模型,然后使用在这样的验证消息中 '${label}' is required.
(参见 LabeledWebMarkupContainer#setLabel
和 LabeledWebMarkupContainer#getLabel
)。
如果您没有为 <wicket:label>
标签分配任何文本,那么它将用作输出。这意味着您的 Java FormComponent 的标签模型的值用于替换标签。
如果您在 HTML 标记中没有 <wicket:label>
并且在您的 Java 代码中没有设置标签模型,那么您的 Java FormComponent 将有一个空标签模型Wicket 回退到使用 Wicket ID 作为标签。因此,根据您的 Wicket ID 的外观,您将收到像 'user_name' is required.
这样的验证器消息,而不是像 'User name' is required.
这样看起来不错的消息
过去我为我的表单创建了这样的标签:
<label wicket:for="name"><wicket:label><wicket:message key="name"></wicket:message></wicket:label>:</label><input wicket:id="name" type="text"/>
我还需要使用 wicket:label
标签吗?我没有在 wicket 7 中使用 wicket:label
,它似乎工作正常。我可能不理解使用 wicket:label 的目的。似乎 wicket:label
只是附加标记。下面是我现在正在做的。这是正确的吗?:
<label wicket:for="name"><wicket:message key="name"></wicket:message>:</label><input wicket:id="name" type="text"/>
这个例子与Wicket XHTML tags
有关查看 AutoLabelResolver
和 AutoLabelTextResolver
的 Java文档。
<label wicket:for="name">
由 AutoLabelResolver
处理。它通过在 HTML for
标签的属性。它还将 css 类 添加到 label 标记中,例如错误,因此您可以在出现错误时设置 label 标记中的文本样式。
<wicket:label>
有两个目的。如果您通过 key
属性(就像您所做的那样)或通过在标签之间添加一些文本为其赋值,则该文本将设置为 Java FormComponent 的标签模型,然后使用在这样的验证消息中 '${label}' is required.
(参见 LabeledWebMarkupContainer#setLabel
和 LabeledWebMarkupContainer#getLabel
)。
如果您没有为 <wicket:label>
标签分配任何文本,那么它将用作输出。这意味着您的 Java FormComponent 的标签模型的值用于替换标签。
如果您在 HTML 标记中没有 <wicket:label>
并且在您的 Java 代码中没有设置标签模型,那么您的 Java FormComponent 将有一个空标签模型Wicket 回退到使用 Wicket ID 作为标签。因此,根据您的 Wicket ID 的外观,您将收到像 'user_name' is required.
这样的验证器消息,而不是像 'User name' is required.