我正在尝试在表单组件验证失败时使我的文本字段出错。 我在我的textfield类属性中添加了一个“error”值,使其变为红色。
我是通过覆盖表单上的onValidate()方法并使用我的组件来查看它们是否有错误。
@Override
protected void onValidate() {
super.onValidate();
Iterator<Component> compIter = iterator();
while(compIter.hasNext()) {
final Component comp = compIter.next();
if(comp instanceof AbstractTextComponent<?>) {
comp.add(new AttributeAppender("class", new Model<String>() {
@Override
public String getObject() {
return (comp.hasErrorMessage())?"error":"";
}
}, " "));
}
}
}
这很有效,但是当我查看生成的HTML时:
<input id="user_username" class="normal error error error" type="text" name="user.userName" value="stijn" maxlength="25" wicket:id="user.userName">
它生成错误值3次。 我做错了什么?
这是在wicket中实现这一目标的最佳方式还是有更好的方法???
THX, 柯恩
答案 0 :(得分:1)
我不知道为什么它打印3次“错误”。您可以使用此工具,而不是编写自己的工具。 https://cwiki.apache.org/WICKET/automatic-styling-of-form-errors.html