我遇到了Wicket为编程需要存在的元素生成标记的问题,但不是结构上的问题.它并没有弄乱任何东西,但我希望尽可能保持页面整洁.应该注意的是,我是一名前端开发人员,所以如果可能的话,我想把手放在java文件之外.
假设我有以下HTML,它是组件模板的一部分:
<ul class="configList" wicket:id="rows">
<li wicket:id="cols">
<div wicket:id="checkBoxThing"></div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是checkBoxThing的模板:
<wicket:panel>
<div wicket:id="checkboxContainer">
<label wicket:id="label"></label>
<input type="checkbox" wicket:id="checkbox" name="check" />
</div>
</wicket:panel>
Run Code Online (Sandbox Code Playgroud)
查看页面时,生成的标记如下所示:
<ul class="configList>
<li>
<div>
<div id="RandomWicketID">
<label>Checkbox Label</label>
<input type="checkbox" />
</div>
</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
LI中的那两个DIV在结构上没有做任何事情或者用于客户端脚本; 他们只是占用空间.我可以在模板中做些什么告诉Wicket不要渲染它们吗?我似乎无法找到任何我可以通过的参数来实现这一点,办公室里没有人似乎知道.
提前致谢!
小智 14
使用<wicket:container>标记.
注意:如果Wicket的配置模式设置为开发(默认IIRC),则wicket属性和标记仍将出现在标记中.如果将其更改为部署,Wicket将从输出中删除它们(请参阅https://cwiki.apache.org/WICKET/how-to-remove-wicket-markup-from-output.html).
configList:
<ul class="configList" wicket:id="rows">
<li wicket:id="cols">
<wicket:container wicket:id="checkBoxThing" />
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
checkBoxThing:
<wicket:panel>
<wicket:container wicket:id="checkboxContainer">
<label>Checkbox Label</label>
<input type="checkbox" />
</wicket:container>
</wicket:panel>
Run Code Online (Sandbox Code Playgroud)
结果(在部署模式下):
<ul class="configList>
<li>
<label>Checkbox Label</label>
<input id="foo" type="checkbox" />
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5131 次 |
| 最近记录: |