2013-10-02 2 views
0

Я по-прежнему получаю исключение RuntimeException при рендеринге моей страницы, и я не понимаю причину. Он говорит, что закрытие </div> отсутствует, но оно уже существует. Что может быть решением для этого исключения?Кнопка ввода HTML, расположенная в 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) at org.apache.wicket.Component.replaceComponentTagBody (Component.java:4045) at org.apache .wicket.markup.html.basic.Label.onCom ponentTagBody (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); 

большое спасибо вам помочь!

+0

ОК, так что ... где же StackTrace? –

+0

Это довольно долго. Я попытаюсь вставить немного его. – ZelelB

+0

любая идея, что я могу сделать, чтобы избавиться от этого исключения? – ZelelB

ответ

2

Вы используете ярлык в теге 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> 

я не могу проверить это прямо сейчас, поскольку я не имею установку калитки здесь, чтобы попробовать ...

+0

это сработало! Огромное спасибо!! – ZelelB

Смежные вопросы