私は私のページでは、3つのテキストフィールドを過ごしていたStruts 2に非常に新しいです、私は数のために、テキスト・フィールド上の唯一の手段(0-9)の検証を置きます。私のvalidation.xmlファイルのコードでは、私は数日申請のため<field-validator type="int">
ではないことを知っている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>
のようなものです。しかし、私は、前売に感謝..私は私の問題を解決することができますので、あなたは、私が検証のために提出されたことに置くべき何アプト私を助けてくださいすることができ
..ユーザーは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">
のみです。タイプ=必須ではありません。
あなたは
最後に私の必要性は、私は番号の検証や他の正規表現の検証のためにページをリロードする必要はありません ..です私はこの問題を解決するために助けてください。これは必要な検証のためだけに機能しています。
あなたはここでどのような問題がありますか?それはすでに働いていないのですか? – doctrey
@doctrey - 最小値と最大値を指定するintバリデータがStringオブジェクトに対して機能するとは思いません。 – nmc
@nmcはい、そうですが、インターセプタのデフォルトスタックで間違っていない場合は、変換後に検証が行われるので、すでにintを検証しています。 – doctrey