2011-06-27 5 views
2

私は私のページでは、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"> のみです。タイプ=必須ではありません。

あなたは

最後に私の必要性は、私は番号の検証や他の正規表現の検証のためにページをリロードする必要はありません ..です私はこの問題を解決するために助けてください。これは必要な検証のためだけに機能しています。

+0

あなたはここでどのような問題がありますか?それはすでに働いていないのですか? – doctrey

+0

@doctrey - 最小値と最大値を指定するintバリデータがStringオブジェクトに対して機能するとは思いません。 – nmc

+0

@nmcはい、そうですが、インターセプタのデフォルトスタックで間違っていない場合は、変換後に検証が行われるので、すでにintを検証しています。 – doctrey

答えて

1

これは、これは私の質問の私の更なる詳細です

ソリューションではありませんが、私は、検証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> 

このコードは自動生成されます。このコードは、私がページを提出するときに提出されます。しかし、ページを提出する前に、その生成されていない...この問題は、

のためではないタイプ=必要なためです。

最後に私の必要性は、私は番号の検証や他の正規表現の検証のためにページをリロードする必要はありません です。これは必要な検証のためだけに機能しています。

------------------------------------------------------------------------------------------- 

最終的に私は私の答えを得た

私は私の必要性は数だけ入力を検証するためのテキストフィールドの検証を置くことです

ソリューション

を達成することができ、誰説明しましょう。

私はStruts2がこの基本的な検証を提供すると思いますが、私はそれを見つけることができません。

だから私は、これはAjaxをjQueryの検証と正常に動作します

<field-validator type="regex" short-circuit="true"> 
    <param name="expression"><![CDATA[^[0-9]+$]]></param> 
     <message>Not Valid Number</message> 
</field-validator> 

ように私のフィールド上での正規表現の検証を置きます。 私は正規表現でCDATAを入れています。今はうまくいきます。

ご協力いただきありがとうございます。

Dhrumil Shah

+0

私はnmcが同じ答えをしたと思います。 – doctrey

1

あなただけの数字に文字列を一致させるためにregular expression validatorを使用することができます。

+0

Hey nmc。返信ありがとう。これは基本的な検証タイプです。いつも正規表現を使用するのは良くありません。しかし、まだ正規表現は、ページを提出し、エラーメッセージが私には、私が[送信]ボタンをクリックしたときに、テキストフィールドの上に私を表示するFiledErrorでエラーメッセージを与える。あなたは私の問題を理解することができます。 –

+0

@Dhrumil Shah--このプラグインを使用していますか?http://code.google.com/p/struts2-jquery/wiki/Validation? – nmc

+0

私はstruts2-jquery-plugin-3.0.2バージョンを使用しています。 –

関連する問題