标签: resourcereference

什么是Wicket中的ResourceReferences,它们如何工作?

我看过包含这样的事情的例子:

mountSharedResource("/images/logo.gif", new ResourceReference(ImageScope.class,
  "logo.gif").getSharedResourceKey());

mountSharedResource("/resource",
  Application.class.getName() + "/" + resourceKey);
Run Code Online (Sandbox Code Playgroud)

但是Javadoc为构造函数说了这个:

ResourceReference(java.lang.Class<?> scope, java.lang.String name);
Run Code Online (Sandbox Code Playgroud)

因此,当您创建一个时ResourceReference,就会给它一个类.为什么?通常你会想要全局范围或ResourceReference刚刚创建的对象的范围,不是吗?

还有,是什么name?是sharedResourceKey吗?如果没有,它resourceKey来自哪里?它是如何产生的,为什么不是它的名字?或者name在类路径上查找并神奇地加载(假设在类路径中只有一个具有该名称的文件;如果有多个会发生什么?)?如果它确实加载了具有该名称的文件,为什么不在Javadoc中这样说呢?

你如何实际为此分配一个物理资源ResourceReference?有一个getResource(),但他们似乎错过了setResource().如果你的目录中有一个图像文件,你webapp如何"附加"对文件的引用,它的路径,甚至是文件内容的字节流?如果有一种方法可以在webapp中读取资源,这可能很有用,但你不能; 它只在类路径中.

我希望能够"挂载"内容,比如说,webapp/games/someGame.swf以便Wicket页面可以访问webapp中的SWF,或者只是对它们进行某种处理.

java wicket resourcereference

6
推荐指数
2
解决办法
8330
查看次数

Wicket从文件系统提供图像

我对Wicket很新,我在使用资源引用方面遇到了一些困难.我正在使用wicket 1.5.4并有以下问题:我将图像存储在文件系统上.我有类ImageElement,它保存相对于配置的rootFilePath的文件路径的一部分(即dir1/dir2/img1.png).在页面上我添加Image如下:

new Image("id",ImagesResourceReference.get(), pageParameters)
Run Code Online (Sandbox Code Playgroud)

其中页面参数包括图像路径参数(path ="/ dir1/dir2/img1.png").我的问题是:

  • 它是从文件系统提供图像的最简单方法吗?
  • 使用ResourceReference和静态方法是否可以?或者我应该每次构建新的ResourceReference?我看到在以前的版本中可以使用新的ResourceReference(globalId),但似乎不再是这种情况了.如果是这样,全球资源参考是什么?据我所知,资源引用应该是资源的工厂,因此为每个资源请求创建新工厂会很奇怪.
  • 最后一个问题是,如何以更好的方式将路径传递给图像,这样一旦在ImageResource上调用了响应方法,我就不必连接索引参数来构建路径.
  • 什么是让它以高效和简单的方式工作的最佳方案,我在"Wicket in action"中看到了这个例子,但这是为了从db生成动态图像,我不确定它是否适合我的情况

我在"/ images"路径下安装在Application中的ResourceReference的实现如下:

public class ImagesResourceReference extends ResourceReference {

private static String rootFileDirectory;

private static ImagesResourceReference instance;

private ImagesResourceReference() {
    super(ImagesResourceReference.class, "imagesResourcesReference");
}

public static ImagesResourceReference get() {
    if(instance == null) {
        if(StringUtils.isNotBlank(rootFileDirectory)) {
            instance = new ImagesResourceReference();
        } else {
            throw new IllegalStateException("Parameter configuring root directory " +
                    "where images are saved is not set");
        }
    }
    return instance;
}

public static void setRootFileDirectory(String rootFileDirectory) { …
Run Code Online (Sandbox Code Playgroud)

wicket image resourcereference

4
推荐指数
1
解决办法
5719
查看次数

Wicket 6 webapp上下文资源

我正在迁移一个wicket 1.4应用程序,它在webapp上下文目录下有很多js,css en images:

src/main/webapp
+js
++plugin1.js
++plugin2.js
+app
+css
Run Code Online (Sandbox Code Playgroud)

等等

在我们的应用程序中,我们使用了JavaScript.getHeaderContribution("js/plugin1.js");

新的wicket 6实现没有这个头文件贡献方法.相反,你应该使用:

JavaHeaderItem.forReference(new JavaScriptResourceReference(Application.class,"js/plugin1.js");

但我不想使用范围!它现在将在与Application类相同的包中搜索文件.ContextRelativeReference在此位置无效,因为它不扩展ResourceReference.

关于我应该如何访问我的webapp文件而不必将每个文件作为共享资源添加并在我的头文件贡献者中引用它的任何想法?

wicket resourcereference

3
推荐指数
1
解决办法
1203
查看次数

Java Wicket资源问题

我正在开发一个Web应用程序,我们将代码和Web资源(如css,图像文件等)分开.

我这里有一个文件:

项目root/src/main/webapp/images/icons/16/add.png

在这个位置:

项目root/src/main/java/se/su/dsv/scipro/icons

我有一个这样的课:

package se.su.dsv.scipro.icons;

import org.apache.wicket.ResourceReference;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.model.Model;


public class ImageIcon extends Image {

    private static final long serialVersionUID = 1L;

    public static final String ICON_NEW_ADD = "../../../../../../webapp/images/icons/16/add.png";

    public ImageIcon(String id, String name, String size, String alt){
        super(id, new ResourceReference(ImageIcon.class, name));
        if(alt != null){
            add(new AttributeAppender("alt", true, new Model<String>(alt), " "));
        }
        else {
            add(new AttributeAppender("alt", true, new Model<String>(name), " "));
        }
    }

    public ImageIcon(String id, String name){
        this(id, name, "", null); …
Run Code Online (Sandbox Code Playgroud)

java wicket resourcereference

1
推荐指数
1
解决办法
6572
查看次数

标签 统计

resourcereference ×4

wicket ×4

java ×2

image ×1