Я все еще получаю исключение 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);
Благодарю за помощь!
Вы используете ярлык в теге div. Ярлык переопределяет любую разметку внутри тега, чтобы удалить тег ввода, который вы используете, для привязки кнопки.
Чтобы избавиться от этого, вам понадобится другой тег (скорее всего, калитка: контейнер, поскольку он только отображает его содержимое) для вашей метки.
Что-то вроде
<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>
Я не могу проверить его прямо сейчас, так как у меня нет калитки, чтобы попробовать...