我在Struts中,我有我的网页三个文本字段2.很新,我把一个验证的数量仅在文本字段部件(0-9)。在我的validation.xml文件中,代码就像如何在Struts 2中验证数字的文本字段?
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="disSlab.minAmt">
<field-validator type="requiredstring">
<message>Required</message>
</field-validator>
<field-validator type="int">
<param name="min">0</param>
<param name="max">9</param>
<message>Data Not Valid</message>
</field-validator>
</field>
<field name="disSlab.maxAmt">
<field-validator type="requiredstring" short-circuit="true">
<message>Required</message>
</field-validator>
</field>
<field name="disSlab.schemeValue">
<field-validator type="requiredstring" short-circuit="true">
<message>Required</message>
</field-validator>
</field>
</validators>
我知道<field-validator type="int">
不适用于Number Filed。但我需要提醒用户,当用户类型除了0至9任何..
能否请你帮我生根粉我应该放什么东西在申请验证,所以我可以解决我的问题。在进阶感谢。
Dhrumil沙阿
这不是解决办法,这是我的我的问题
的进一步详情参见我已经调试进行验证lib中的源代码。它生成这样的客户端查询代码..
<script type="text/javascript">
function validateForm_updateSlabDataFormId() {
form = document.getElementById("updateSlabDataFormId");
clearErrorMessages(form);
clearErrorLabels(form);
var errors = false;
var continueValidation = true;
// field name: disSlab.minAmt
// validator name: requiredstring
if (form.elements['disSlab.minAmt']) {
field = form.elements['disSlab.minAmt'];
var error = "requiredstring on amt";
if (continueValidation && field.value != null && (field.value == "" || field.value.replace(/^\s+|\s+$/g, "").length == 0)) {
addError(field, error);
errors = true;
}
}
// field name: disSlab.minAmt
// validator name: required
if (form.elements['disSlab.minAmt']) {
field = form.elements['disSlab.minAmt'];
var error = "required on amt";
if (field.value == "") {
addError(field, error);
errors = true;
}
}
// field name: disSlab.minAmt
// validator name: conversion
if (form.elements['disSlab.minAmt']) {
field = form.elements['disSlab.minAmt'];
var error = "Conversion needed";
}
// field name: disSlab.minAmt
// validator name: int
if (form.elements['disSlab.minAmt']) {
field = form.elements['disSlab.minAmt'];
var error = "Data Not Valid";
if (continueValidation && field.value != null) {
if (parseInt(field.value) <
0 ||
parseInt(field.value) >
9) {
addError(field, error);
errors = true;
}
}
}
</script>
请参阅此代码是自动生成的。当我提交页面时,这段代码是非常好的。但它不会在页面提交之前生成..此问题仅适用于<field-validator type="conversion">
不适用于type = required。
能否请你帮我解决这个问题..
最后我需要的是 我不想重新加载号码验证或任何其他正则表达式验证的页面。这只适用于需要验证。
究竟是什么问题?它已经不工作了吗? – doctrey
@doctrey - 我不相信指定最小值和最大值的int验证器可以用于String对象。 – nmc
@nmc是的你是对的,但如果我没有错误的默认堆栈的拦截器验证转换后完成,所以我们已经验证了int。 – doctrey