gpt4 book ai didi

java - ListView 内的片段 - Wicket

转载 作者:行者123 更新时间:2023-12-01 15:23:30 25 4
gpt4 key购买 nike

我正在尝试在重复的 li 组件中添加片段:

<ul>
<li wicket:id="listView">HERE GOES MY FRAGMENT</li>
</ul>

填充 ListView 的代码如下:

@Override
protected void populateItem(final org.apache.wicket.markup.repeater.Item<Message> item) {
Message msg = item.getModelObject();
log.info("Adding message fragment to markup: " + item.getMarkupId());
item.add(new MessageFragement(item.getMarkupId(), "messageFragment", this, msg));
}

生成的预期代码是:

<ul>
<li .... wicket:id="listView></li>
<li .... wicket:id="listView></li>
....
</ul>

但是我的片段未添加,并且我收到运行时 Wicket 口异常:

The component(s) below failed to render. A common problem is that you have added a component in code but forgot to reference it in the markup (thus the component will never be rendered).

为什么我无法使用项目标记 ID 作为片段的组件 ID?我现在可以通过在 li 上添加一个附加标签来轻松解决这个问题:

<ul><li wicket:id="listView"><div wicket:id="message"></div></li></ul>

并将标记 id“message”添加到片段中。但我不想要它。我只想使用已有的

  • 来托管我的片段,这可能吗?

    谢谢大家

  • 最佳答案

    我想我找到了一个解决方案,或者更好的解决方法。

    我确实将片段的容器标记留在

  • 中:

    <ul>
    <li wicket:id="listView"><div wicket:id="message">FRAGMENT</div></li>
    </ul>

    之后,在 MessageFragment 中,我只是在 Fragment 构造函数中设置为不使用 setRenderBodyOnly(true) 函数渲染容器标记:

    public MessageFragement(String id, String markupId, MarkupContainer markupProvider, final Message message) {
    super(id, markupId, markupProvider, new Model<Message>(message));

    setRenderBodyOnly(true);
    ...
    }

    结果符合预期:

    <ul>
    <li wicket:id="listView" wicketpath="...listView_1">MessageFragment1</li>
    <li wicket:id="listView" wicketpath="...listView_2">MessageFragment2</li>
    <li wicket:id="listView" wicketpath="...listView_3">MessageFragment3</li>
    </ul>

  • 关于java - ListView 内的片段 - Wicket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518481/

    25 4 0
    文章推荐: java - 未找到具有 Hibernate 依赖项的 JAR 的配置类
    行者123
    个人简介

    我是一名优秀的程序员,十分优秀!

    滴滴打车优惠券免费领取
    滴滴打车优惠券
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com