Wicket中的数字验证

时间:2012-07-25 07:47:09

标签: wicket

我正在使用wicket 1.5。我有文本字段,在用户输入金额和我在wicket类中使用的“金额”用于更进一步的目的。我需要验证金额字段

final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class);

如果我使用上述验证已完成但我无法获得课程中的金额值 是否有其他方法可以验证

此致 沙拉斯

4 个答案:

答案 0 :(得分:1)

不知道这里的问题是什么,但你的回答可以NumberTextField

来自JavaDoc

  

根据配置的{@link #setMinimum(Number)min}和{@link #setMaximum(Number)max}属性自动验证输入。如果其中任何一个是null,那么{@link Double#MIN_VALUE}和{@link Double#MAX_VALUE}将被尊重使用。

答案 1 :(得分:0)

如果您通过onSubmit方法获取表单中的文本字段,只需按

清除值即可

textfield.getModelObject();

将它与您需要的任何内容进行比较,如果不匹配则发送反馈错误,您怎么看?

答案 2 :(得分:0)

是的,还有一种方法可以验证文本字段输入。 TextField组件为您提供了一个add()方法,您可以在其中添加wicket验证规则。例如,您可以编写实现wicket的IValidator接口的自定义规则。

您可以在此处找到各种内置的wicket验证器:http://wicket.apache.org/apidocs/1.4/org/apache/wicket/validation/validator/package-summary.html

要回答关于获取用户在文本字段中输入的值的问题,如果您有任何形式的此文本字段,则在此表单的onSubmit上,您应该能够通过调用

来获取值
    amount.getModelObjet();

希望这能回答你的问题。

答案 3 :(得分:0)

通常,Wicket希望您将模型(getter + setter作为对象)传递给组件,并使用它来存储转换后的结果。

您应该能够使用textField.getConvertedInput()来获取值,以防您不想使用模型。但这样做是个例外,因为无论如何你最终都会将该值复制到目的地,模型会为你自动化。