Wicket が 使用するjQuery の version を 切り替える


Wicket 6 以降は、
jQueryをサポートしたApache Wicket 6がリリース
に記載がある通り、 1.5 までの独自ajax サポートがブラウザ互換で問題が出ていたため、
クロスブラウザサポートで、実績のあるjQeury に 置き換えられています。

以下、Wicket 7.8 をDEVELOPMENT_MODE で起動した際に、
html上に記載される、ビルドインjQuery の リンクになります。

<script type="text/javascript" src="./wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.12.4-ver-1500144445000.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery-ver-1500144445000.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1500144445000.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug-ver-1500144445000.js"></script>

Wicket 非同期処理のブラウザ互換性が高まったのはいいことなんですが、
アプリケーション側でjQuery を使用していると、
version 互換で問題がでる場合があります。
現在アプリケーションで使用しているjQuery の version が、 jQuery v1.11.1 だったので、そのバージョンと、Wicket 側の ビルドインjQuery のversion が合わせられるか 調べてみました。


jQuery の Version の 切り替え方法

java - replace wicket 6.3 jquery - Stack Overflow
に、記載がある通り、
WebApplication クラス内で、以下設定を行うと、jQuery の version を切り替えられます。

    // change jQuery Version 1.11.1
    getJavaScriptLibrarySettings()
            .setJQueryReference(new UrlResourceReference(Url.parse("https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js")));

個人的には、cdn の フォールバック記述ができないように思いましたので、
ローカルのjQuery の読み込むようにしました。

    // change jQuery Version 1.11.1
    getJavaScriptLibrarySettings()
            .setJQueryReference(new UrlResourceReference(Url.parse("/static/plugins/jquery.min.js")));


JavaScriptLibrarySettings の その他の setter メソッドについて

JavaScriptLibrarySettings には、 setJQueryReference 以外に、
以下3つの setter メソッドが存在します。

  • setWicketAjaxReference
    wicket-ajax.js の、実装を切り替えることができます。

  • setWicketEventReference wicket-event.js の、実装を切り替えることができます。

  • setWicketAjaxDebugReference
    wicket-ajax-debug.js の、実装を切り替えることができます。

各jsをなんらかの理由で変更したい場合に、差し替えるための拡張ポイントですね。
気になったので記載しておきます。


その他リンク

以上です。

コメント