iOS6でjsonするときのStruts2 (`ェ´)ピャー | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

iOS6キャッシュ問題!

iOS6のSafariは、みなさんご存知、Ajaxの通信をキャッシュするとか色々とあります。

AjaxでPostした結果がキャッシュされてたりすると、まーなにかと困るわけですよね。
そこでどうするか

iOS6はnoCacheだよ!

ということでJsonで通信するときはHttpのヘッダーにnoCacheをつけましょうというのが解決策です。

Javaで書くと下記のようなコードになります。

response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

Strut2の場合

Strut2でJsonのレスポンスを処理をする場合、Struts2 Jsonプラグインを使いますよね?
他にも方法はありますが、今回はこの方法のやりかた。

実はすごい簡単。
struts.xmlのJsonプラグインの記述の所をこんな感じにするだけ。

<package name="myApp-default" extends="struts-default">
    <result-types>
        <result-type name="json" class="org.apache.struts2.json.JSONResult">
            <param name="noCache">true</param>
        </result-type>
    </result-types>
</package>


Jsonプラグインでよかったーε-(´∀`*)ホッ

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識
戸根 勤 日経NETWORK

日経BP社 2007-04-12
売り上げランキング : 1498

Amazonで詳しく見る