Java 导叶头部层次结构

Java 导叶头部层次结构,java,wicket-1.5,wicket-1.6,wicketstuff,Java,Wicket 1.5,Wicket 1.6,Wicketstuff,我对标签有点困惑。我从wicket 1.5知道头部渲染策略从父->子->子->父更改为子->子 现在我使用wicket 6.9,我有一个简单的菜单面板,我想使用一些jquery效果。 我想对整个应用程序使用相同的jquery(例如google)文件 我不能仅在主页面中使用jquery链接,因为在呈现菜单面板中有“$(document).ready”,并且无法识别它。阅读一些论坛,我发现面板应该包含jquery本身——这是合理的,因为它可以独立地重用 因此,现在我的页面包括: <head&g

我对标签有点困惑。我从wicket 1.5知道头部渲染策略从父->子->子->父更改为子->子

现在我使用wicket 6.9,我有一个简单的菜单面板,我想使用一些jquery效果。 我想对整个应用程序使用相同的jquery(例如google)文件

我不能仅在主页面中使用jquery链接,因为在呈现菜单面板中有“$(document).ready”,并且无法识别它。阅读一些论坛,我发现面板应该包含jquery本身——这是合理的,因为它可以独立地重用

因此,现在我的页面包括:

<head>
  ...
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  ...
</head>

...
...
我的菜单面板也是一样的。作为呈现html的结果,我加载jquery.js两次

我应该如何解决它?我只想加载一次。我知道我可以回到原来的策略,使用application.getResourcesSettings().setHeaderItemComparator(),但据我所知,这并不是最好的解决方案

我可以在wicket中找到类似PriorityHeaderItem的类,但wicket的文档非常差,没有找到任何使用它的示例


致以最良好的祝愿,因为wicket 1.6 jQuery现在是框架使用的javascript库。因此,您可能会看到jQuery两次,因为您包含了一个jQuery和wicket版本?如果要覆盖jQuery版本,可以创建一个资源引用,然后在应用程序类的init方法中设置它

首先,您需要资源引用文件,并将js文件放在相同的包结构中

public final类JQueryResourceReference扩展了JavaScriptResourceReference{
私有静态最终JQueryResourceReference实例=新的JQueryResourceReference();
私有JQueryResourceReference(){
super(JQueryResourceReference.class,“jquery.js”);
}
公共静态JQueryResourceReference get(){
返回实例;
}
}
然后在application init方法中执行以下操作:

public MyApplication extends AuthenticatedWebApplication {

    @Override
    protected void init() {
        super.init();

        getJavaScriptLibrarySettings().setJQueryReference(JQueryResourceReference.get());

         ....
     }

     ....
}