在过去,我为我的表格建立了这样的标签:
<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标签相关。
发布于 2015-09-15 08:55:27
看看JavaDoc of AutoLabelResolver和AutoLabelTextResolver。
<label wicket:for="name">由AutoLabelResolver处理。它通过在标签的HTML表单属性中填充正确的ID,将label标记链接到HTML组件(在您的例子中是input标记)。它还将css类添加到label标记中,例如出现错误,因此您可以在标签标签中设置文本样式,以防出现错误。
<wicket:label>有两个目的。如果您通过key属性(如您所做的那样)或通过在标记之间设置一些文本来给它一个值,则将文本设置为FormComponent的标签模型,然后将其用于像这个'${label}' is required.这样的验证消息中(参见LabeledWebMarkupContainer#setLabel和LabeledWebMarkupContainer#getLabel)。
如果没有将任何文本分配给<wicket:label>标记,则将其用作输出。这意味着您的Java FormComponent的标签模型的值用于替换标记。
如果HTML中没有<wicket:label>,Java代码中也没有设置标签模型,那么您的FormComponent将有一个空的标签模型,Wicket又回到使用Wicket作为标签。因此,根据Wicket ID的外观,您将得到类似于'user_name' is required.的验证器消息,而不是像'User name' is required.这样好看的消息。
https://stackoverflow.com/questions/32574406
复制相似问题