Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Wicket应用程序中的全局可访问资源_Java_Css_Image_Wicket - Fatal编程技术网

Java Wicket应用程序中的全局可访问资源

Java Wicket应用程序中的全局可访问资源,java,css,image,wicket,Java,Css,Image,Wicket,目前,我有一个应用程序,它由一个基本页面组成,作为页眉(面板)、页脚(面板),并位于继承页面内容的中心。我遇到的问题是ResourceReferences(也许这甚至不是正确的方法)。我正在寻找一种解决方案,它将允许我执行以下操作: 为全局使用的图像、js、css创建一个目录 注册(或不注册)这些资源,以便可以从我将来可能创建的任何继承页或同级页访问它们 允许在CSS和JS中访问这些资源(例如图像的URL) 到目前为止,我已经阅读了几个示例,这些示例展示了如何为组件或应用程序级别的范围打包资源,

目前,我有一个应用程序,它由一个基本页面组成,作为页眉(面板)、页脚(面板),并位于继承页面内容的中心。我遇到的问题是ResourceReferences(也许这甚至不是正确的方法)。我正在寻找一种解决方案,它将允许我执行以下操作:

  • 为全局使用的图像、js、css创建一个目录
  • 注册(或不注册)这些资源,以便可以从我将来可能创建的任何继承页或同级页访问它们
  • 允许在CSS和JS中访问这些资源(例如图像的URL)
  • 到目前为止,我已经阅读了几个示例,这些示例展示了如何为组件或应用程序级别的范围打包资源,但没有一个示例能够解决我正在寻求帮助的所有3个问题。重要的是,我不必将全局使用的图像(编辑图标、徽标等)复制到每个组件包中以供参考,出于维护原因,最好在一个全局位置进行这些绑定,以便于参考和更新。

    自Wicket 1.4以来,这一点发生了重大变化。请看

    要使图像和其他资源全局可访问(特别是从CSS和JS文件),请将它们装载到应用程序的init()方法中:

    绝对不需要以任何方式复制资源。资源不必与组件本身位于相同的包中。在我们的应用程序中,我们将全球使用的资源放入一个专用的包(比如com.example.myapp.images)中,并在其中放入一个类(例如imagescope.java)——JS和CSS也是如此

    对于图像,您不需要
    ResourceReference
    ,因为您不需要在代码中呈现这些引用(org.apache.wicket.markup.html.image.image除外)。用于JS和CSS

    add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css"));
    
    顺便说一句,我是GitHub提供的一篇文章的作者。使用此库,您可以跳过应用程序init()中的手动装载,而改用注释


    编辑:更新链接。不幸的是,wicketstuff维基中的文档现在似乎不见了。不过也有不同的语法:@Sebas您是对的。我已经在你链接的开头添加了注释。答案最初是为Wicket 1.4编写的。
    add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css"));