HTML输入按钮位于div中

时间:2013-10-02 10:54:24

标签: java html input wicket

我在渲染页面时仍然遇到RuntimeException,我不明白原因。它告诉我们关闭了</div>,但它已经存在了。这个例外可能是什么解决方案?

Stracktrace:

意外的RuntimeException

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);

谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

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

要摆脱这种情况,你需要另一个标签(很可能是一个检票口:容器,因为它只能呈现它的内容)。

这样的东西
<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>

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