Ich habe versucht, eine kleine Anwendung, die mit Wicket7 erstellt wurde, auf Wicket8 zu migrieren. Ein Stück, das Fehler und Warnungen löscht und den umgeschriebenen Inhalt bis zu dem Punkt auflistet, an dem er vorerst funktioniert. Mir geht es jetzt nicht besser. Auch Lambda wird nicht behandelt.
Dies ist Nanika wie ein Memorandum. Wenn Sie ordnungsgemäß migrieren möchten, lesen Sie unbedingt das Original-Migrationshandbuch.
Das Formular, das bisher als Argument übergeben wurde, ist verschwunden. Ich habe in meinem Code nicht darauf verwiesen, also löschen Sie einfach das Argument. Sie können es mit "AjaxButton.getForm ()" erhalten, wenn Sie möchten.
Zum Beispiel "AjaxFormComponentUpdatingBehavior".
python
//bis jetzt"onchange"Es hat funktioniert, auch wenn ich es angegeben habe ...
hoge.add(new AjaxFormComponentUpdatingBehavior("change") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
//Etwas zu verarbeiten
}
});
Es gibt keine Ausnahmen, auch wenn "on" angehängt ist, aber JavaScript funktioniert nicht. Ab der Zeit von Wicket 6.x scheint im Protokoll ein Warnprotokoll mit der Aufschrift "Schreiben Sie nicht weiter. Ich werde Ihnen jetzt vergeben, aber verzeihen Sie mir ab 8." Ich habe es nicht bemerkt. Es ist mir egal, aber ich denke, der Klassenname "AjaxFormComponentUpdatingBehavior" ist zu lang.
Verwenden Sie keine Latte. Mit IDE wird die Stornierungslinie gezogen und das Nutzungsgefühl verdoppelt. Es ist einfach zu reparieren, ersetzen Sie es einfach durch "IModel".
Ich habe es über ein Etikett wie das folgende verwendet, also habe ich es nur an einer Stelle geändert. Ich wollte es einfach nicht oft schreiben, weil es so viele Zeichen in "AbstractReadOnlyModel" gibt.
ReadOnlyLabel.java
package yamane.wicket;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
public abstract class ReadOnlyLabel<T> extends Label {
public ReadOnlyLabel(String id) {
super(id);
//Ich habe dies an IModel umgeschrieben
// setDefaultModel(new AbstractReadOnlyModel<T>() {
setDefaultModel(new IModel<T>() {
@Override
public T getObject() {
return load();
}
});
}
protected abstract T load();
}
Java 8 ist erforderlich und die Standardmethode der Schnittstelle kann verwendet werden. Sehr erfrischend.
Dies ist fast dasselbe wie "AbstractReadOnlyModel". Ersetzen Sie "erweitert" durch "implementiert" und ersetzen Sie es durch "IRequestCycleListener" durch die hinzugefügte Standardmethode. Aber das wurde im Migrationsleitfaden nicht erwähnt, oder? Ich benutze es oft zur Handhabung, bevor ich die Fehlerseite schreibe, aber ich frage mich, ob jeder es benutzt.
Beim Überschreiben ist jetzt "Super.onConfigure ()" erforderlich. Bis jetzt war die Implementierung von "Component.onConfigure ()" leer, daher dachte ich "Ich muss es nicht aufrufen, die einzeilige Beschreibung wird reduziert", aber von Wicket8 "Nein, Ausnahme, du stirbst". Ich werde. wie? Haben Sie schon einmal erwähnt, dass dies für JavaDoc unerlässlich ist? Es tut mir leid, dass ich es nicht gelesen habe.
Da es sich um eine Methode handelt, die häufig überschrieben wird, gibt es viele Änderungen. Ich grep und kopiere nur. Das war das Größte für mich.
Es war viel weniger Veränderung als ich erwartet hatte.
Ich persönlich denke, dass der Code für Wicket-Anwendungen für jeden Programmierer sehr unterschiedlich sein wird. Welches ist nicht der richtige Fehler, sondern die Individualität oder Gewohnheit. Ich bin mir also sicher, dass es unterschiedliche Umschreiborte für Wicket 7-Anwendungen geben wird, die von verschiedenen Personen erstellt wurden. Ich habe nicht viel Code für Wicket-Anwendungen gesehen, die von jemand anderem als mir selbst erstellt wurden, daher bin ich mir nicht sicher.
Es endet abrupt, nachdem die Nutzlosigkeit dieses Artikels angesprochen wurde.
Recommended Posts