画像 (org.apache.wicket.markup.html.image.Image) を含む Wicket でモーダル ウィンドウを作成しようとしています。Wicket ユーザー ガイド ( https://wicket.apache.org/guide/guide/ajax.html ) に記載されているとおり:
モーダル ウィンドウのコンテンツは、別のコンポーネントまたはページのいずれかです。
画像は次の条件を満たす:
class Image extends WebComponent -> class WebComponent extends Component
Label (org.apache.wicket.markup.html.basic.Label) で試してみたところ、うまくいきました。Image でそれを行ったとき、例外が発生しました。これが私のJavaおよびHTMLコードです(logo.pngは.javaおよび.htmlと同じパッケージにあります):
ジャワ
// Modal window with Image
final ModalWindow mwImage = new ModalWindow("modalWindowWithImage");
PackageResourceReference imgRef = new PackageResourceReference(this.getClass(), "logo.png");
Image img = new Image(mwImage.getContentId(), imgRef);
mwImage.setContent(img);
add(mwImage);
add(new AjaxLink("imageLink") {
@Override
public void onClick(AjaxRequestTarget target) {
mwImage.show(target);
}
});
HTML
<a href="#" wicket:id="imageLink">image link</a>
<div wicket:id="modalWindowWithImage"></div>
予期しないランタイム例外
Last cause: Component [content] (path = [30:modalWindowWithImage:content]) must be applied to a tag of type [img], not: '<div wicket:id="content">' (line 0, column 0)
生成された HTML コードは次のとおりです。
<a href="javascript:;" wicket:id="imageLink" id="imageLink22">image link</a>
<div wicket:id="modalWindowWithImage" id="modalWindowWithImage25" style="display:none"><wicket:panel xmlns:wicket="http://wicket.apache.org">
<div id="content26" style="display:none"></div>
</wicket:panel></div>
例外の説明は自明です: <img> タグがありませんが、それを解決してモーダル ウィンドウに画像を表示する方法が見つかりませんでした。wicket.version 6.17.0 を使用しています。前もって感謝します。