Wicket 1.5 では、タグ属性をプログラム側から指定する場合注意が必要だった。
<img> を、あえて WebMarkupContainer で生成して src= を
SimpleAttributeModifier で指定する場合、WebContent からの相対パスで画像ファイルを
指定してもだめだった。1.4 の時は、OKだった。
Wicket 1.5 では、前に、wicket/bookmarkable/ が付くURL で画像取得が要求されてしまう。
例えば、WebContent の下、img ディレクトリに画像がある場合、以下のように記述することになる。
WebMarkupContainer image = new WebMarkupContainer("image");
image.add(new SimpleAttributeModifier("src","../../img/flowerclosed.jpg"));
image.add(new SimpleAttributeModifier("alt","開く"));
image.add(new SimpleAttributeModifier("title","開く"));
image.add(new AjaxEventBehavior("onclick"){
@Override
protected void onEvent(AjaxRequestTarget target){
Component ct = get("image");
ct.add(new SimpleAttributeModifier("src",isOpenImage()
? "../../img/flowerclosed.gif" : "../../img/floweropened.gif"));
ct.add(new SimpleAttributeModifier("alt",isOpenImage() ? "開く" : "閉じる"));
target.add(ct);
}
});