Java Wicket-验证程序报告警告而不是错误,并且不阻止表单提交

Java Wicket-验证程序报告警告而不是错误,并且不阻止表单提交,java,warnings,wicket,validation,Java,Warnings,Wicket,Validation,我有一个表单,其中有5个TextFields是必需的,25个是可选的。我设置了所需的文本字段setRequired(true),并在这些字段为空时获取所需的反馈消息 但是,当25个字段为空但表单仍然正确提交时,如何实现这样的效果,使我在反馈面板中收到警告消息?我想告诉用户,这些字段是可选的,但如果他愿意填写,那就太好了 我知道我可以在onSubmit()中通过warn()过程添加警告。但是在提交时,我只能检查模型的这个值,我没有空的组件。但是我想拥有验证程序s的功能,这样我就可以对用户说“opt

我有一个表单,其中有5个
TextField
s是必需的,25个是可选的。我设置了所需的文本字段
setRequired(true)
,并在这些字段为空时获取所需的反馈消息

但是,当25个字段为空但表单仍然正确提交时,如何实现这样的效果,使我在反馈面板中收到警告消息?我想告诉用户,这些字段是可选的,但如果他愿意填写,那就太好了

我知道我可以在
onSubmit()
中通过
warn()
过程添加警告。但是在提交时,我只能检查模型的这个值,我没有空的组件。但是我想拥有
验证程序
s的功能,这样我就可以对用户说“optionalTextField1”字段没有值,但是如果您填充它,我可以为消息设置用户属性,等等


有什么办法吗?

您可以实现自己的IValidator,例如,将组件作为变量传递并使用warn

public void validate(IValidatable<String> validatable)
{
    String value = validatable.getValue();
    if (value.isEmpty())
    {
        component.warn("some nice message")
    }
}
public void validate(IValidatable validable)
{
String value=validatable.getValue();
if(value.isEmpty())
{
warn(“一些好消息”)
}
}

仅举一个未经测试的示例

通过重写解决了这一问题


getLabel().getObject()
要求您
setLabel(Model.of(“Nice字段名”)

谢谢您的回答。问题是,如果我不输入任何内容,此字段上的验证将不会执行,因此无法执行。请不要覆盖checkRequired(),添加一个自定义验证程序。演示如何编写一个生成警告的验证程序,而不是
validator Error
。基本上,请回答我的问题。
 @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();

 }