是否可以改变检票口输出?

时间:2012-05-23 15:59:18

标签: html components wicket

您好, 我想知道是否有可能更改wicket输出html代码。例如对于组件“CheckBoxMultipleChoice”,您将获得以下html输出。

<span wicket:id="letters">
<input name="letters" type="checkbox" value="0" id="letters_0"/><label for="letters_0">fff</label><br/>
<input name="letters" type="checkbox" value="1" id="letters_1"/><label for="letters_1">aaa</label><br/>
<input name="letters" type="checkbox" value="2" id="letters_2"/><label for="letters_2">bbb</label><br/>
<input name="letters" type="checkbox" value="3" id="letters_3"/><label for="letters_3">ccc</label><br/>
<input name="letters" type="checkbox" value="4" id="letters_4"/><label for="letters_4">ddd</label><br/>
</span>

如果我不想要<br/>标签,我该怎么办? 问候

2 个答案:

答案 0 :(得分:5)

这取决于组件。

对于基于Panel的任何内容,您始终可以对组件(MyPanel.java)进行子类化,并提供不同的标记文件(MyPanel.html)。只要你有相同的wicket:id s,它就可以正常工作。

对于内置的Wicket组件,其源代码中嵌入了标记元素,如CheckBoxMultipleChoice,您将受组件的自定义API的支配。在您的情况下,您似乎想要CheckBoxMultipleChoice#setSuffix

答案 1 :(得分:4)

不,摘自documentation

  

组件可能会更改其引用标记,替换标记的正文或在标记后插入标记。但组件无法从标记流中删除标记。这是一个重要的保证,因为图形设计师可能会在组件标签上设置影响视觉呈现的属性。

但是,如果要在组件之间添加/删除新的行间距,可以将组件的显示更改为阻止/内联

@Override
protected void onComponentTag(ComponentTag tag) {
    super.onComponentTag(tag);
    //block or inline 
    tag.put("style", "display:block");
}

或使用CSS类