2017-08-15 46 views
-1

我有一个整数字段,当我输入一个非整数值(让我们说一个符号的),反馈面板应该自动触发默认消息,但它不工作,我有通过方法error()在窗体的onError方法中调用它。Wicket:自动字段验证不起作用

这是文本框,我使用:

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

这是我简单FeedBackPanel:

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

它只能当我调用方法错误()的方法的onError()的形成。

+0

请考虑为可读性应用一些markdown:https://stackoverflow.com/editing-help#code –

+0

提供的信息不足以告诉您问题在哪里。请提供更多与此字段及其表单相关的代码。 –

+0

我想我找到了问题的原因,问题的原因是在我使用的模型中,我在图书馆中使用了名为HibernateModel的自定义模型,这是由我们公司创建的,labrary的名称是wicketautodao,在这里是链接https://sourceforge.net/projects/wicket-autodao/ –

回答

0

您能告诉我们您是如何创建您使用的表格型号?据我了解,你会想要绑定一个模型到你的领域。我最好的猜测是你的模型没有属性“intValue”。

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

+0

尼古拉斯我不这么认为,因为如果模型没有属性“intValue”它会抛出异常 –

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); 
    } 

} 

请让我回到我在此柜面如果你需要什么。

+0

谢谢soorapadman,我会尝试使用这个例子 –