我正在使用检票口 1.5。我有文本字段,用户在其中输入金额,以及我在检票口类中使用的“金额”以用于进一步的目的。我需要验证金额字段
final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class);
如果我使用上述验证完成但我无法获得类中的金额值是否有任何其他方法可以验证
问候沙拉特
我正在使用检票口 1.5。我有文本字段,用户在其中输入金额,以及我在检票口类中使用的“金额”以用于进一步的目的。我需要验证金额字段
final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class);
如果我使用上述验证完成但我无法获得类中的金额值是否有任何其他方法可以验证
问候沙拉特
不确定这里的问题是什么,但NumberTextField可以通过您的回答。
来自 JavaDoc
根据配置的 {@link #setMinimum(Number) min} 和 {@link #setMaximum(Number) max} 属性自动验证输入。如果其中任何一个是
null
{@link Double#MIN_VALUE} 和 {@link Double#MAX_VALUE},则分别使用。
如果您通过 onSubmit 方法获取表单中的文本字段,只需通过
textfield.getModelObject();
将其与您需要的任何内容进行比较,如果它不匹配发送反馈错误,您怎么看?
是的,还有另一种方法可以验证文本字段输入。TextField 组件为您提供了一个 add() 方法,您可以在其中添加检票口验证规则。例如,您可以编写实现 wicket 的 IValidator 接口的自定义规则。
您可以在这里找到各种内置检票口验证器:http ://wicket.apache.org/apidocs/1.4/org/apache/wicket/validation/validator/package-summary.html
要回答有关获取用户在文本字段中输入的值的问题,如果您有任何形式的此文本字段,那么此表单的 onSubmit 您应该能够通过调用来获取值
amount.getModelObjet();
希望这能回答你的问题。
通常,Wicket 期望您将模型(getter+setter 作为对象)传递给组件并使用它来存储转换后的结果。
如果您不想使用模型,您应该能够使用 textField.getConvertedInput() 来获取值。但这样做是个例外,因为无论如何您最终都会将该值复制到其目的地,模型将为您自动执行该操作。