以 wicket 形式显示错误的简单方法
easy way of showing errors in a wicket form
我是 wicket 初学者,发现很难在其中实现更高级的操作。
所以我有一个表单,里面有输入字段和一个提交按钮。我用自己的逻辑编写了自己的验证器。现在,当验证器失败时,页面会重新加载,错误的值会丢失。我想要的是:
- 错误输入(验证器失败)的输入应该在图形上有所不同,即获得自己的样式 - 我可以在验证器本身中做到这一点吗?还是我必须实施访客?我如何为这个表格注册它?不需要错误消息。
- 'wrong input' 不应丢失并且应该对用户可见。
我将永远感谢一个简单的解决方案(请提供一些代码片段)
你需要的是验证器+行为。
当 FormComponent 的标记无效时,需要该行为来修改它。
幸好他们混得很好:
public class MyValidator extends Behavior implements IValidator<SomeType> {...}
实施 IValidator#validate(IValidatable)
来验证(你已经有了这个)并覆盖 Behavior#onComponentTag(Component, ComponentTag)
以在无效时设置 CSS class,例如:
@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")))}
。
我希望现在事情变得更干净了。
玩得开心!
我是 wicket 初学者,发现很难在其中实现更高级的操作。
所以我有一个表单,里面有输入字段和一个提交按钮。我用自己的逻辑编写了自己的验证器。现在,当验证器失败时,页面会重新加载,错误的值会丢失。我想要的是:
- 错误输入(验证器失败)的输入应该在图形上有所不同,即获得自己的样式 - 我可以在验证器本身中做到这一点吗?还是我必须实施访客?我如何为这个表格注册它?不需要错误消息。
- 'wrong input' 不应丢失并且应该对用户可见。
我将永远感谢一个简单的解决方案(请提供一些代码片段)
你需要的是验证器+行为。 当 FormComponent 的标记无效时,需要该行为来修改它。
幸好他们混得很好:
public class MyValidator extends Behavior implements IValidator<SomeType> {...}
实施 IValidator#validate(IValidatable)
来验证(你已经有了这个)并覆盖 Behavior#onComponentTag(Component, ComponentTag)
以在无效时设置 CSS class,例如:
@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")))}
。
我希望现在事情变得更干净了。
玩得开心!