3

サーバーのどこかに多くの画像を保存するリポジトリがあります。リポジトリに保存されている画像の1つを使用して動的な画像オブジェクトを作成できるようにしたいと考えています。

改札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が私の改札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 に答える