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

Posted

技术标签:

【中文标题】是否可以更改检票口输出?【英文标题】:Is it possible to change the wicket output? 【发布时间】:2012-05-30 05:21:54 【问题描述】:

你好, 我想知道是否可以更改检票口输出 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>

如果我不想要&lt;br/&gt; 标签,我该怎么办? 问候

【问题讨论】:

【参考方案1】:

这取决于组件。

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

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

【讨论】:

【参考方案2】:

不,摘自documentation

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

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

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

或使用 CSS 类

【讨论】:

以上是关于是否可以更改检票口输出?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以更改 Lua 错误消息的输出?

WICKET:控制组件在更改 CheckBox 时的可见性

检票口嵌套 ListView(3 次)

ReentrantLock 源码分析

是否可以更改音频队列的播放音高

人脸验证与识别——从模型训练到项目部署