[JAVA] Tokoro j'ai réécrit dans la migration de Wicket 7 à 8

Synopsis jusqu'à présent

J'ai essayé de migrer une petite application réalisée avec Wicket7 vers Wicket8. Un jeu qui efface les erreurs et les avertissements et énumère le contenu réécrit jusqu'au point où il fonctionne pour le moment. Je ne me sens pas mieux maintenant. De plus, Lambda n'est pas géré.

C'est Nanika comme un mémorandum. Si vous souhaitez migrer correctement, assurez-vous de consulter le Guide de migration d'origine.

Deuxième argument d'AjaxButton.onSubmit ()

Le formulaire qui était passé comme argument jusqu'à présent a disparu. Je ne l'ai pas mentionné dans mon code, alors supprimez simplement l'argument. Si vous le souhaitez, vous pouvez l'obtenir avec ʻAjaxButton.getForm () `.

Nom d'événement spécifié dans AjaxEventBehavior (et ses sous-classes)

Par exemple, ʻAjaxFormComponentUpdatingBehavior`.

python


//jusqu'à maintenant"onchange"Cela a fonctionné même si je l'ai spécifié ...
hoge.add(new AjaxFormComponentUpdatingBehavior("change") {
    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        //Quelque chose de traitement
    }
});

Il n'y a pas d'exceptions même si ʻon est attaché, mais JavaScript ne fonctionne pas. Depuis l'époque de Wicket 6.x, il semble qu'un journal d'avertissement soit apparu dans le journal disant "N'écrivez pas. Je vous pardonne maintenant, mais pardonnez-moi à partir de 8." Je n'ai pas remarqué. Je m'en fiche, mais je pense que le nom de classe ʻAjaxFormComponentUpdatingBehavior est trop long.

AbstractReadOnlyModel obsolète

N'utilisez pas de latte. Avec IDE, la ligne d'annulation est dessinée et la sensation d'utilisation est doublée. C'est facile à réparer, remplacez-le simplement par ʻIModel`.

Je l'ai utilisé via une étiquette comme celle ci-dessous, donc je ne l'ai changé qu'à un seul endroit. ʻAbstractReadOnlyModel` a beaucoup de caractères, donc je ne voulais simplement pas l'écrire plusieurs fois.

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);
        //J'ai réécrit ceci sur IModel
        // setDefaultModel(new AbstractReadOnlyModel<T>() {
        setDefaultModel(new IModel<T>() {
            @Override
            public T getObject() {
                return load();
            }
        });
    }
    protected abstract T load();
}

Java 8 est requis et la méthode par défaut de l'interface peut être utilisée. Très rafraîchissant.

AbstractRequestCycleListener obsolète

C'est presque la même chose que ʻAbstractReadOnlyModel. Remplacez ʻextends par ʻimplements et remplacez ʻIRequestCycleListener par la méthode par défaut ajoutée. Mais cela n'a pas été mentionné dans le guide de migration, non? Je l'utilise souvent pour la manipulation avant d'écrire la page d'erreur, mais je me demande si tout le monde l'utilise.

Méthode Component.onConfigure ()

Super.onConfigure () est maintenant requis lors de la substitution. Jusqu'à présent, l'implémentation de Component.onConfigure () était vide, alors j'ai pensé "Je n'ai pas besoin de l'appeler, la description en une ligne sera réduite", mais à partir de Wicket8, "Non, exception, vous mourrez". Je vais. hein? Avez-vous déjà mentionné qu'il était essentiel pour JavaDoc? Je suis désolé de ne pas l'avoir lu.

Comme il s'agit d'une méthode fréquemment remplacée, il y a de nombreux changements. Je viens de grep et de copier. C'était le plus gros pour moi.

Jusque là

C'était beaucoup moins de changement que ce à quoi je m'attendais.

Je pense personnellement que le code des applications Wicket sera assez différent pour chaque programmeur. Ce n'est pas la bonne erreur, mais l'individualité ou l'habitude. Donc, je suis sûr qu'il y aura différents emplacements de réécriture pour les applications Wicket 7 créées par différentes personnes. Je n'ai pas vu beaucoup de code pour les applications Wicket créé par quelqu'un d'autre que moi, donc je ne suis pas sûr.

Il se termine brusquement après avoir fait appel de l'inutilité de cet article.

Recommended Posts

Tokoro j'ai réécrit dans la migration de Wicket 7 à 8
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
Migration d'Eclipse vers IntelliJ (en cours)
J'ai essayé d'organiser la session en Rails
Je veux obtenir la valeur en Ruby
J'étais accro à NoSuchMethodError dans Cloud Endpoints
[Java] Je souhaite calculer la différence par rapport à la date
Je veux intégrer n'importe quel TraceId dans le journal
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Migration de Cobol vers JAVA
J'ai essayé de faire une demande en 3 mois d'inexpérimenté
[Débutant] Je souhaite modifier le fichier de migration-Comment utiliser la restauration-
Comprendre le flux approximatif de la demande à la réponse dans SpringWebMVC
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
Je souhaite passer au même écran dans l'état enregistré
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
En Java, je souhaite couper plusieurs caractères spécifiés uniquement du début et de la fin.
Je veux recréer le contenu des actifs à partir de zéro dans l'environnement construit avec capistrano
migration du tampon de protocole de 2.x vers 3.x
Passer les paramètres régionaux i18n à JavaScript
J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
Tri des données Décroissant, croissant / Rails
J'ai essayé d'expliquer la méthode
L'histoire que je voulais développer Zip
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
[Java] Je veux effectuer distinctement avec la clé dans l'objet
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
Qu'est-il arrivé aux modifications typiques d'Apache Wicket 8?
La route de JavaScript à Java
Je veux changer la valeur de l'attribut dans Selenium of Ruby
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
[Rails] J'ai découvert les fichiers de migration! (Ajout d'une colonne au tableau)
Je veux écrire une JSP dans Emacs plus facilement que la valeur par défaut.
J'ai résumé les points à noter lors de l'utilisation combinée des ressources et des ressources
Suivez du nœud racine au nœud inférieur avec JavaFX ~ Je connais l'itinéraire ~
Confirmation et refactoring du flux de la requête au contrôleur dans [httpclient]
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai appelé l'analyse de la syntaxe de l'API COTOHA 100 fois en Java pour mesurer les performances.
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
J'étais accro aux tests unitaires avec l'opérateur de tampon dans RxJava
[Ruby] J'ai essayé de résumer les méthodes fréquentes dans paiza
[Ruby] J'ai essayé de résumer les méthodes fréquentes avec paiza ②
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
Qu'est-ce que CHECKSTYLE: OFF trouvé dans la source Java? Checkstyle à savoir de
Raccourcissez l'UUID en base64 dans Swift.