我正在使用wicket 1.5。我有文本字段,在用户输入金额和我在wicket类中使用的“金额”用于更进一步的目的。我需要验证金额字段
final TextField<Integer> amount = new TextField<Integer>("amount",Integer.class);
如果我使用上述验证已完成但我无法获得课程中的金额值 是否有其他方法可以验证
此致 沙拉斯
答案 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()来获取值,以防您不想使用模型。但这样做是个例外,因为无论如何你最终都会将该值复制到目的地,模型会为你自动化。