struts 2でのjsonの構成

2114 ワード

struts 2とjsonの統合は、action処理が完了した後に対応するオブジェクトを対端に出力する必要がある複数の属性に適応するためであり、簡単な例は、マルチレベルselectタグの連動であり、このときactionから返される値はSUCCESS or ERRORほど簡単ではなく、バックエンドでつなぎ合わせられたであり、このときJSONが役に立った
付け加えて、Struts 2でjsonを使用しない場合、例えばservletでは、このときjson形式の文字列をつなぎ合わせることでフロントエンドに戻ります(注:これは似たような例を見ただけです.後で自分でテストします.struts 2 hは戻ったオブジェクトを自動的に対応するjson形式にカプセル化します.この言葉は、servletで私たちが自分でカプセル化したにすぎません).
原理:構成によりstruts 2はaction内の対応する属性のgetterメソッドを呼び出してオブジェクトを取得し、jsong形式にカプセル化した後にシーケンス化してフロントエンドに転送する
    
構成:
1>json-lib-2.4-jdk 15を加える.jar 
2>struts.xmlの構成には:
<package name="strtus2" extends="json-default"></package>

注:これからjsonのaction extendsというパッケージを使えばいいです
3>actionの構成例:
       
 <action name="registerUtilAction" class="springRegisterUtilAction" >
                  <result name="areaListDO" type="json"> <!-- type=json    result name            -->
                        <param name="excludeNullProperties">true</param> <!--         NULL properties -->
                        <param name="includeProperties"><!--     properties -->
                              areaListDO
                        </param>
                  </result>
            </action>  

4>actionを作成し、返される属性にはgetterメソッドが必要であることを覚えておいてください.返される属性は必要ありません.
       @JSON(serialize = false)
このjson注釈表示、すなわちこの属性をシーケンス化しないで、返す必要がないのはすべてこのように注釈したほうがいいです.そうしないと、シーケンス化できない異常などが発生する可能性があります.
5>フロントエンドでjsonオブジェクトを抽出します.ここではfirebugなどのツールで確認することをお勧めします.
              
jsonの内容、さらにはjsonのフォーマットをはっきり見ることができます:このスクリーンショットと私のareaListDOには2つの属性areaList(areaId、areaInfoPK、areaNameの3つの属性も含む)とresultsの2つの属性しかありません.
    json.areaListDO.resultsすなわちjsonオブジェクトのareaListDO(これは私が返した属性名)のresultsという属性
json[areaListDO].resultsがこのように取るのはネット上で中括弧[]で取るのは属性の中に中国語があることを避けると言う人がいるのを見て、しかし私は自分でテストしたことがあって、“.”中国语を含む属性を取るのも文字化けしていません...
大功告成..