以wicket形式显示错误的简单方法

时间:2015-09-04 12:43:11

标签: wicket

我是一名wicket初学者,发现在其中实施更高级的操作非常困难。

所以我有一个带有输入字段的表单和一个提交按钮。我用自己的逻辑编写了自己的验证器。现在当验证器失败时,页面只是重新加载而错误的值会丢失。我想要的是:

  1. 错误输入的输入(验证器失败的地方)应该是图形不同的,即得到自己的风格 - 我可以在验证器本身中做到吗?或者我必须实施访客?我如何为这种形式注册?不需要任何错误消息。
  2. “错误输入”不应丢失,并且应该对用户可见。
  3. 我会永远感谢一个简单的解决方案(请提供一些代码片段)

1 个答案:

答案 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")))}

我希望现在的东西更干净。

玩得开心!