【问题标题】:Prevent Wicket from generating HTML for container elements?防止 Wicket 为容器元素生成 HTML?
【发布时间】:2011-05-26 22:33:34
【问题描述】:

我遇到了一个问题,即 Wicket 为需要以编程方式存在但结构上不需要的元素生成标记。这并没有搞砸任何事情,但我喜欢尽可能保持页面整洁。需要注意的是,我是一名前端开发人员,所以如果可能的话,我想尽量避免接触 java 文件。

假设我有以下 HTML,它是组件模板的一部分:

<ul class="configList" wicket:id="rows">
    <li wicket:id="cols">
        <div wicket:id="checkBoxThing"></div>
    </li>
</ul>

这是 checkBoxThing 的模板:

<wicket:panel>
    <div wicket:id="checkboxContainer">
        <label wicket:id="label"></label>
        <input  type="checkbox" wicket:id="checkbox" name="check" />
    </div>
</wicket:panel>

查看页面时,生成的标记如下所示:

<ul class="configList>
    <li>
        <div>
          <div id="RandomWicketID">
             <label>Checkbox Label</label>
             <input type="checkbox" />
          </div>
        </div>
    </li>
</ul>

LI 中的这两个 DIV 没有在结构上做任何事情,也没有用于客户端脚本;他们只是占用空间。我可以在模板中做些什么来告诉 Wicket 不要渲染它们吗?我似乎找不到任何可以传递的参数来完成此操作,而且办公室周围似乎没有人知道。

提前致谢!

【问题讨论】:

    标签: html wicket


    【解决方案1】:

    使用<wicket:container> 标签。

    注意:如果 Wicket 的配置模式设置为开发(默认 IIRC),则 wicket 属性和标签仍将出现在标记中。如果您将其更改为部署,Wicket 将从输出中删除它们(请参阅https://cwiki.apache.org/WICKET/how-to-remove-wicket-markup-from-output.html)。

    配置列表:

    <ul class="configList" wicket:id="rows">
        <li wicket:id="cols">
            <wicket:container wicket:id="checkBoxThing" />
        </li>
    </ul>
    

    checkBoxThing:

    <wicket:panel>
        <wicket:container wicket:id="checkboxContainer">
            <label>Checkbox Label</label>
            <input type="checkbox" />
        </wicket:container>
    </wicket:panel>
    

    结果(在部署模式下):

    <ul class="configList>
        <li>
            <label>Checkbox Label</label>
            <input id="foo" type="checkbox" />
        </li>
    </ul>
    

    【讨论】:

      【解决方案2】:

      例如使用&lt;wicket:container&gt;

      <ul class="configList" wicket:id="rows">
          <li wicket:id="cols">
              <wicket:container wicket:id="checkBoxThing"></wicket:container>
          </li>
      </ul>
      

      一般见https://cwiki.apache.org/WICKET/wickets-xhtml-tags.html

      【讨论】:

        【解决方案3】:

        还有一个选项是 Component#setRenderBodyOnly(true)。

        【讨论】:

          猜你喜欢
          • 2019-03-21
          • 1970-01-01
          • 1970-01-01
          • 2021-12-03
          • 2021-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-28
          相关资源
          最近更新 更多