Wicket中的数字验证

Wicket中的数字验证,wicket,Wicket,我正在使用wicket 1.5。我有一个文本字段,用户在其中输入金额和我在wicket类中使用的“金额”,以供将来使用。我需要验证金额字段 final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class); final TextField amount=新的TextField(“amount”,Integer.class); 如果我像上面那样使用,那么验证就完成了,但是我无

我正在使用wicket 1.5。我有一个文本字段,用户在其中输入金额和我在wicket类中使用的“金额”,以供将来使用。我需要验证金额字段

final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class);
final TextField amount=新的TextField(“amount”,Integer.class);
如果我像上面那样使用,那么验证就完成了,但是我无法在类中获得amount值 是否有其他方法可以验证

问候
Sharath不确定这里的问题是什么,但a可以根据你的答案回答

来自JavaDoc

根据配置的{@link#setMinimum(Number)min}和{@link#setmax(Number)max}属性自动验证输入。如果其中任何一个为
null
,则分别使用{@link Double#MIN#u VALUE}和{@link Double#MAX#u VALUE}


如果您是通过onSubmit方法获取表单中的textfield,只需通过

textfield.getModelObject()


将其与您需要的内容进行比较,如果不匹配,请发送反馈错误,您认为如何?

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

您可以在此处找到各种内置wicket验证器:

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

    amount.getModelObjet();

希望这能回答您的问题。

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

如果不想使用模型,您应该能够使用textField.getConvertedInput()获取值。但这样做是一个例外,因为您最终会将该值复制到它的目标,而模型会为您自动执行该操作