2011-11-08 1 views
2

私は自分で解決できないような問題に取り組んだ。wicketのファイル(pdf/tiff/png)のコンテンツを提示する。012

ファイルをiFrameに表示したいとします。ファイルはpdf、png、tiffのいずれかであり、事前にどのファイルがあるか分かりません。 pdfsとtiffsは、別のアクション(印刷、ディスクへの保存など)で提示する必要があります。私は、このためにブラウザプラグインに依存しています。

私はこれをしています。
のJava:

public ContentPanel(String id, final Atatchment attachment) { 
    super(id); 

    ResourceReference rr = new ResourceReference(attachment.getName()) { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public IResource getResource() { 
      return new ByteArrayResource(attachment.getMimeType(), attachment.getByteArray()); 
     } 
    }; 

    WebMarkupContainer wmc = new WebMarkupContainer("myIframe"); 
    wmc.add(new AttributeModifier("src", (String) urlFor(rr, null))); 
    add(wmc); 
} 


HTML:

<body> 
    <wicket:panel> 
     <iframe wicket:id="myIframe" src=""></iframe> 
    </wicket:panel> 
</body> 

これは、( "要求されたリソースがフィットネスエクササイズではありません")404になります。問題は、キャッシュされたファイルのいくつかがあったときに、それらのファイルを私が望む方法で提示したことです。

ありがとうございます!
Olle

答えて

2

問題は、リソースがアプリケーションに登録されていないことでした。ちょうど追加されました:

if (rr.canBeRegistered()) { 
     getApplication().getResourceReferenceRegistry().registerResourceReference(rr); 
    } 

そしてそれは機能します!

+0

いいです、これを答えとしてマークしてください。 – rotsch

+0

できるだけ早く行います。 – bumaklion

関連する問題