0

我在渲染页面时仍然收到 RuntimeException,我不明白原因。它告诉你没有结束</div>,但它已经在那里了。此异常的解决方案可能是什么?

追踪:

意外的运行时异常

org.apache.wicket.markup.MarkupException:“”的预期关闭标记<div class="device-nr" wicket:id="sampleHeader">可能尝试将组件“”嵌入<input wicket:id="saveButton" type="submit" value="Save"/>该组件的主体中,该组件在 org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream .java:526) 在 org.apache.wicket.Component.replaceComponentTagBody(Component.java:4045) 在 org.apache.wicket.markup.html.basic.Label.onComponentTagBody(Label.java:131)

这是我的html代码:

<wicket:extend>
    <form class = sample-form wicket:id="sample_form">
        <div class="device-nr" wicket:id="sampleHeader">
            <input wicket:id="saveButton" type="submit" value="Save"/>
        </div>
        <wicket:child />
        <!-- display error here -->
        <div class= "feedback" wicket:id="feedback"></div>
        <div class="sample_details" wicket:id="sample_details"></div>
    </form>
</wicket:extend>

这是我的 Java 代码:

this.form = new Form<T>("sample_form", compound);
    form.add(new Button("saveButton") {
        private static final long serialVersionUID = 5878291170139126213L;

        @Override
        public void onSubmit() {
            T s = form.getModelObject();
            logger.info(s.toString());

        }
    });
    form.add(new Label("sampleHeader", provideSampleHeader()));
    form.add(provideSamplePanel());
    form.add(new FeedbackPanel("feedback"));
    add(form);

谢谢你的帮助!

4

1 回答 1

2

您在 div 标签上使用了标签。标签会覆盖其标签内的任何标记,因此删除您用于锚定按钮的输入标签。

要摆脱这种情况,您需要为您的标签添加另一个标签(很可能是 wicket:container,因为它只呈现其内容)。

就像是

<wicket:extend>
    <form class = sample-form wicket:id="sample_form">
        <div class="device-nr"> <wicket:container wicket:id="sampleHeader" />
            <input wicket:id="saveButton" type="submit" value="Save"/>
        </div>
        <wicket:child />
        <!-- display error here -->
        <div class= "feedback" wicket:id="feedback"></div>
        <div class="sample_details" wicket:id="sample_details"></div>
    </form>
</wicket:extend>

我现在无法测试它,因为我这里没有检票口安装来尝试它......

于 2013-10-02T11:49:06.293 回答