我正在尝试使用来自Visural的非常漂亮的ConfirmerAjaxLink。不过,我在加载页面时得到了一个js脚本:'jQuery没有定义'。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"));
}
}
快速搜索我看到ConfirmerAjaxLink将添加使用jQuery的另一个JavaScript后。然而,由于这是通过添加到组件的行为完成的(上面的链接),此脚本将在jQuery之前添加到标记中(因为这是在我的页面的renderHead之前调用的)。
如果我第一次改变headerRenderStrategy母公司是这样的:
System.setProperty("Wicket_HeaderRenderStrategy","org.apache.wicket.markup.renderStrategy.ParentFirstHeaderRenderStrategy");
它的工作原理,但是这更多的是黑客不是一个解决方案(也,如AbstractHeaderRenderStrategy
表示在:不正式支持检票)。
有没有一个干净的方式,这(我想不会例外)的问题?
我想不出一个干净的方式来做到这一点,但你可以使用[this](http://stackoverflow.com/questions/8313657/writing-script-src-dynamically-via-wicket/8316381)在您的标记中的任何位置添加您的JavaScript文件。 – rotsch 2012-01-06 21:39:25