Main /

Wicket Tipps

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

Wicket Tipps

/ HomePage / Computer / Software / Programmierung / Frameworks / Wicket

Wicket Tipps

Keine Forms in Forms

Wicket verbietet das nicht, es läuft sogar, funktioniert aber nicht wie erwartet. Deshalb unbrauchbar!

Außenliegende Form

 <form>
  <input type="text" ...>...
  <wicket:container > INNERE FORM ... </wicket:container>
 </form>

Falsche innere Form

 <wicket:panel>
  <form>
  <input type="text" ...>...
  </form>
 </wicket:panel>

Ein Objekt von FormConponentPanel darf zwar Form Elemente wie TextFields enthalten, aber keine eigene Form. Da dessen onSubmit() Funktion, die die Elemente einsammelt erst aufgerufen wird, wenn die außen liegende Form abgearbeitet wurde.

Um es richtig zu machen, wird in der inneren Form das <form>-Tag nicht angewendet.

Richtige innere Form

 <wicket:panel>
  <input type="text" ...>...
 </wicket:panel>

Da man allerdings kein onSubmit() mehr hat, um auf Änderungen zu reagieren, muss man die folgenden Funktionen unbedingt überschreiben.

 class EigeneSubForm extends FormComponentPanel<T> {

   public EigeneSubForm(String id, IModel<T> model) {
     super(id, model);
     ...
   }

   // prepare for rendering
   @Override
   protected void onBeforeRender() {
     ...
     super.onBeforeRender();
   }

   // receiving input
   @Override
   protected void convertInput() {
     ...
     this.setConvertedInput(data); // Daten an das model vom Typ <T> weiterleiten
   }
 }

Jetzt steht dem beliebigem Verschachteln eigener Form-Elemente nichts mehr im Weg.

log4j arbeitet in Wicket 6 nicht wie erwartet

Der Output in Tests ist nicht wie erwartet, sondern eher folgende Meldung:

 log4j:WARN No appenders could be found for logger (org.apache.wicket.Application).
 log4j:WARN Please initialize the log4j system properly.

Obwohl die log4j.properties existiert.

Der unkundige geht jetzt bei und sucht bei Tante Google, der wissende grinst und sagt, verschiebe die log4j.properties von src/test/java nach src/test/resources.

Javascript in Wicket after Page Load

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 21.05.2015 11:08 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki