Wicket - Validator报告警告不是错误而不是阻止表单提交

时间:2013-06-25 21:13:45

标签: java warnings wicket validation

我有一个表格,其中我需要5 TextField个,其中25个是可选的。我设置了所需的TextFields setRequired(true),并在此字段为空时获取我想要的反馈消息。

但是,当25个字段为空但表单仍然正确提交时,我如何实现这样的效果以便在我的反馈面板中收到警告消息?我想通知用户这些字段是可选的,但如果他填写它们会很好。

我知道我可以onSubmit()通过warn()程序添加警告。但是在提交中我只能检查模型的这个值,我没有组件是空的。但是我想拥有Validator s的功能,这样我就可以告诉用户字段'optionalTextField1'没有价值,但是如果填写它会很好,我可以消息的用户属性等。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:1)

你可以实现自己的IValidator传递componente作为变量并使用warn,例如

public void validate(IValidatable<String> validatable)
{
    String value = validatable.getValue();
    if (value.isEmpty())
    {
        component.warn("some nice message")
    }
}

只是一个例子,虽未经过测试

答案 1 :(得分:-1)

通过覆盖checkRequired()

解决了这个问题
 @Override
 public boolean checkRequired() {
    if (!isRequired() && getValue().isEmpty()) {
       warn("Field'" + getLabel().getObject() + "' is empty. We suggest to fill it.");
       return Boolean.TRUE;
    }
    return super.checkRequired();

 }

getLabel().getObject()要求您setLabel(Model.of("Nice field name"));