2011-09-23 13 views
1

struts config xmlでValidate = trueを指定せずにstruts 2の検証がどのように実行されるのだろうか。検証フレームワークを使用してStruts 2検証の流れを教えてもらえますか?Struts 2明示が必要

+1

"struts-default"を拡張するパッケージを定義することで、指定したstruts.xmlを使用しています。インターセプタがどのように動作するかを知る必要があります。ウェブ上に書かれたたくさんの場所があります.struts2-core-xxxjarのstruts-default.xmlを開いて、struts-defaultを参照してください。 "が定義されていて、いくつかのインターセプタスタックがあり、defaultStackがある場所の底近くにあり、デフォルトとして十分に設定されています。インターセプタの名前を検索することで、実行した作業を理解していただくことができます。 – Quaternion

答えて

1

"validation" and "workflow" interceptorsの組み合わせによって検証が行われます。 Struts 2の設定ファイルには「不要」なので、「検証」設定はありません。

+0

少し説明すれば、私はそれを感謝します。私はストラット2に初心者です、私はストラット1.2に精通しています。 – user961532

+0

[S2 in a nutshell](http://struts.apache.org/2.2.3.1/docs/nutshell.html)。 –

0

Strutsコアには、アクションメソッドが実行される前に検証を実行するためのルールを実行するアプリケーションを支援する検証フレームワークがあります。

Struts 2 validation flow

アクションクラスは、ドメインデータとして動作し、それはそのアクションマッピングファイルのプロパティを探し、それがtheFileName-Validation.xmlのフィールドバリデータを検索し、すべてのバリデータが検証に定義されたフィールドごとのように動作.xml。データの不一致があれば、validation.xmlからメッセージを取り出し、それをユーザーに表示します。

サンプル従業員-validation.xml:

<validators> 
    <field name="name"> 
     <field-validator type="required"> 
     <message> 
      The name is required. 
     </message> 
     </field-validator> 
    </field> 

    <field name="age"> 
    <field-validator type="int"> 
     <param name="min">29</param> 
     <param name="max">64</param> 
     <message> 
      Age must be in between 28 and 65 
     </message> 
     </field-validator> 
    </field> 
</validators> 

これは、プロパティの名前と年齢のために検証される従業員のモデルと要求のためのサンプルの検証ファイルです。名前フィールドが空のままになっていると、検証は名前入力ボックスの上に「名前が必要です」というエラーメッセージを表示します。入力した年齢が29-64の範囲外の場合、検証では「年齢は28〜年齢入力ボックスの上に「65」と表示されます。