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をなんらかの理由で変更したい場合に、差し替えるための拡張ポイントですね。
気になったので記載しておきます。
その他リンク
-
Wicket 6 remove JQuery reference - Stack Overflow
jQuery リファレンスに空jsファイルを設定する。 -
Users forum - jQuery noConflict() and wicket 6
version 違いの jQuery を共存させたいときに見てみる。
以上です。
コメント