私はVisuralから非常に素晴らしいConfirmerAjaxLinkを使用しようとしています。しかし、私はページをロードするときにjsスクリプトを取得しています: 'jQueryは定義されていません'。私はConfirmerAjaxLinkはjQueryのを使用する別のJavaScriptを追加することを見たクイック検索後WicketがJavaScriptのインポート注文を処理します
public class ConfirmAjaxLinkTestPage extends WebPage {
public ConfirmAjaxLinkTestPage() {
this.add(new ConfirmerAjaxLink("confirm") {
@Override
public void onClick(AjaxRequestTarget target) {
System.out.println("OK");
}
});
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference(new JavaScriptResourceReference(
JavascriptLibraryUtil.class,
"jquery/jquery-1.6.1.min.js"));
}
}
:
私は、問題を識別するために、少しテストページを書きました。ただし、これはコンポーネント(上のリンク)に追加された動作によって行われるため、このスクリプトはjQueryよりも前のマークアップに追加されます(これはマイページのrenderHeadの前に呼び出されるためです)。私が最初にこのような親にheaderRenderStrategyを変更する場合:
System.setProperty("Wicket_HeaderRenderStrategy","org.apache.wicket.markup.renderStrategy.ParentFirstHeaderRenderStrategy");
それは動作しますが、これは解決策(また、AbstractHeaderRenderStrategy
にで述べたように:正式WICKETでサポートされていない)よりもハックです。
これにはクリーンな方法がありますか(私は例外ではないと思います)問題はありますか?
私はこれを行うためのきれいな方法を考えることはできませんが、[this](http://stackoverflow.com/questions/8313657/writing-script-src-dynamically-via-wicket/8316381)マークアップのどこにでもjavascriptファイルを追加することができます。 – rotsch