我是一名wicket初学者,发现在其中实施更高级的操作非常困难。
所以我有一个带有输入字段的表单和一个提交按钮。我用自己的逻辑编写了自己的验证器。现在当验证器失败时,页面只是重新加载而错误的值会丢失。我想要的是:
我会永远感谢一个简单的解决方案(请提供一些代码片段)
答案 0 :(得分:3)
您需要的是Validator + Behavior。 当FormComponent的标记无效时,需要行为来修改它。
幸运的是,他们混合得很好:
public class MyValidator extends Behavior implements IValidator<SomeType> {...}
实施IValidator#validate(IValidatable)
以验证(您已经拥有此项)并覆盖Behavior#onComponentTag(Component, ComponentTag)
以在无效时设置CSS类,例如:
@Override public void onComponentTag(Component c, ComponentTag tag) {
FormComponent fc = (FormComponent) c;
if (!fc.isValid()) {
tag.append("class", "error", " ");
}
}
确保加载了.css
文件,该文件定义了具有所需样式的.error
。您可以覆盖Behavior#renderHead(Component, IHeaderResponse response) {response.render(CssHeaderItem.forReference(new CssResourceReference(SomeScope.class, "res/css/styles.css")))}
。
我希望现在的东西更干净。
玩得开心!