2

您好,我想知道是否可以更改检票口输出 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/>标签,我该怎么办?问候

4

2 回答 2

5

这取决于组件。

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

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

于 2012-05-23T18:51:40.560 回答
4

不,从文档中提取

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

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

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

或使用 CSS 类

于 2012-05-23T16:18:36.787 回答