3

我有一个存储库,在服务器的某处存储了许多图像。我希望能够使用存储在我的存储库中的图像之一创建一个动态图像对象。

我正在使用检票口 1.5.7。我在某处看到了这个例子

1) 创建了 FileResource 类:

public class FileResource extends WebResource { 
private static final long serialVersionUID = 1L; 

private File file; 

public FileResource(File file) { 
    this.file = file; 
} 

@Override 
public IResourceStream getResourceStream() { 
    return new FileResourceStream(file); 
} 
}

2) 在 MyPage.java 中:

File imageFile = new File("local_path_to_image"); 
Image myImage = new Image("myImage", new FileResource(imageFile)); 
add(myImage);

3) 在 MyPage.html 中:

<i-m-g wicket:id="myImage" />

但这不适用于我的情况,因为 WebResource 在我的 wicket 1.5 中不可用。

我还研究了检票口动作中的这个链接。但我是一个检票口比格纳,我不太了解。

我正在制作一个项目,其中用户在单击产品时会打开带有产品名称的模式窗口。我还想在面板内的模态窗口中包含产品图像。图像存储在我的服务器上的一个目录中。

任何帮助和建议表示赞赏!提前致谢。

4

1 回答 1

0

最后我确定了这个代码。我正在传递图像文件名并创建图像。

add(new NonCachingImage("imgPlc", new AbstractReadOnlyModel<DynamicImageResource>(){
          @Override public DynamicImageResource getObject() {
            DynamicImageResource dir = new DynamicImageResource() {
              @Override protected byte[] getImageData(Attributes attributes) {
                  StringValue name = parameters.get("name");
                  byte[] imageBytes = null;
                    if(name.isEmpty() == false)
                        imageBytes = getImageAsBytes(name.toString());

                    return imageBytes;
              }
            };
            dir.setFormat("image/png");
            return dir;
          }
        }));
于 2012-12-20T14:21:59.487 回答