我在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