Wicket在链接中包裹img元素

时间:2014-08-18 09:41:09

标签: java html wicket

我有显示图像的wicket代码:

<div class="someclass">
   <img wicket:id="some-image"/>
</div>

这很有效。

我要求sais,这个图像可能被包裹在链接中,并且该链接也需要从检票口生成。

所以我想以最好的方式实现这个,而不必像这样添加BOTH部分:

<a wicket:id="link-for-image">
   <div class="someclass">
      <img wicket:id="some-image-with-link"/>
   </div>
</a>

<div class="someclass">
   <img wicket:id="some-image"/>
</div>

并隐藏其中一个。

很好地实现这个的标准方法是什么?

有没有办法为&#34; link-for-image&#34;定义某种通用类型?所以我可以创建它作为web标记容器而不是链接?

感谢!!!

3 个答案:

答案 0 :(得分:2)

  1. 使用Border
  2. 使用片段
  3. 始终输出<a>,但隐藏href属性。
  4. PS:由于HTML标准,<div>内不允许<a>

答案 1 :(得分:1)

如果Ajax是一个选项,您可以添加onclick行为:

Image img = new Image("id", yourResource);
img.add(new AjaxEventBehavior("onclick") {
    @Override
    protected void onEvent(AjaxRequestTarget target) {
        // Your click magic
    }
});
add(img);

答案 2 :(得分:1)

首先,&#34;禁用链接&#34; AbstractLink的功能可能就足够了。 Link,BookmarkablePageLink等扩展了AbstractLink。

如果没有,您可以使用Link的子类(或BookmarkablePageLink,或其他)。然后覆盖onComponentTagBody(),如果&#34;链接&#34;不应该是一个链接,不要添加一个href并将其变成一个或。这个解决方案假定这样一个&#34;包装&#34;元素不会搞砸你的CSS或脚本。如果您的标记设置被设置为剥离此类标记,您可能可以将其转换为检票口:容器并将其剥离。