Wicket:自动字段验证不起作用

时间:2017-08-15 08:43:58

标签: wicket

我有一个整数字段,当我输入一个非整数值(让我们说一个符号)时,应该使用默认消息自动触发反馈面板,但它不起作用,我必须在onError方法中调用它形式方法错误()。

这是textField,我使用:

RequiredTextField<Integer> intField =
         new RequiredTextField<>("intValue", integerValue,Integer.class);

这是我简单的FeedBackPanel:

fragment.add(new FeedbackPanel("feedback"));

只有当我在窗体的onError()方法中调用方法error()时,它才有效。

2 个答案:

答案 0 :(得分:0)

您能否告诉我们您如何创建表单以及您使用的模型?据我所知,您需要将模型绑定到Fields。我最好的猜测是你的模型没有属性“ intValue ”。

您可能想(重新)访问Wicket Wiki "More on Models"

答案 1 :(得分:0)

我不确定你是如何设置模型的。添加RequiredTextField后,它将不允许您清空,因为您设置了Integer类型,所以不允许输入字符。

我尝试了一些完美且有效的代码片段。

HomePage.html

<html xmlns:wicket="http://wicket.apache.org">
<body>
<form wicket:id="someForm">
<div wicket:id="feedback"></div>
<input type="text" wicket:id="requiredText">
<input type="submit" value="submit">
</form>
</body>
</html>

HomePage.Java

public class HomePage extends WebPage {
    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters) {
        super(parameters);

        Form form = new Form("someForm");
        form.add(new FeedbackPanel("feedback"));

        IModel integerValue= Model.of("");
        form.add(new RequiredTextField("requiredText",integerValue,Integer.class));
        add(form);
    }

}

如果您有任何需要,请让我在这个问题上回复我。