[JAVA] Transition de Struts2 à Spring MVC (contrôleur)

Conditions préalables à la migration de Struts 2 vers Spring MVC

La procédure la plus simple est

Les autres remplacements incluent Validation, View et Interceptor, mais ils peuvent être transformés en modules indépendants de Struts2, afin qu'ils puissent être remplacés séquentiellement. Cette fois, c'est l'édition Controller.

Hypothèses de classe d'action

La classe Action de Struts2 est censée être décrite avec des annotations à l'aide du plug-in ** Convention **. Si vous n'avez pas installé le plug-in Convention, appliquez d'abord le plug-in Convention et écrivez l'annotation Struts2 dans la classe Action.

Officiel Struts2: Plugin de convention: https://struts.apache.org/docs/convention-plugin.html Qiita: Classe d'action Write Struts2 basée sur une annotation (version printemps 2016) Http://qiita.com/alpha_pz/items/4a97df916102dad2e2bc

Classe d'action après application de la Convention

La mise en œuvre de la classe Action est la suivante

Il suffit de garder.

DisplayListAction.java


// Struts2-Convention
@Namespace("/")        // (1)
@ParentPackage("struts-thymeleaf")
@Results({@Result(name=ActionSupport.SUCCESS,type="thymeleaf-spring",location="list")})        // (3)
// Spring framework
@Controller
@Scope("prototype")
public class DisplayListAction extends ActionSupport {

    @Action("list") // Struts2-Convention        // (2)
    public String execute() throws Exception {
        products = service.search(param);
        return SUCCESS;
    }

    @Autowired // Spring framework
    ProductService service;

    @Setter        // (4)
    private String param;

    @Getter @Setter // Lombok        // (5)
    List<SampleProduct> products;
}

Si vous vous limitez à ce point, vous pouvez le remplacer par le contrôleur Spring MVC.

Au contrôleur de Spring MVC

DisplayListController.java


@Controller
@RequestMapping("/")        // (1)
public class DisplayListController {

    @GetMapping("list")        // (2)
    public ModelAndView index(@RequestParam String param, ModelAndView mnv) {        // (4)
        List<SampleProduct> products = service.search(param);

        mnv.addObject("products", products);        // (5)
        mnv.setViewName("/list");        // (3)

        return mnv;
    }
}

Cela permet un mappage un à un.

# Réglages Struts2 Convention Spring MVC
1 chemin @Namespace @RequestMappings
2 Chemin de contrôle @Action @GetMapping,@Post Mapping etc.
3 Voir Voir @Results,@Result Renvoie le nom de la vue ou le nom de la vue de ModelAndView seul
4 Paramètres à recevoir Variable membre + méthode du mutateur(※1) Arguments de méthode
5 Contenu pour répondre Variable membre + méthode d'accesseur(※2) Valeur de retour de la méthode

La chose importante à migrer est d'amener la relation Contrôleur-Service à la relation Action-Service après Spring MVC, et de gérer l'objet requête / réponse dans le champ Classe Action de la méthode Controller. Est d'aller.

Recommended Posts

Transition de Struts2 à Spring MVC (contrôleur)
Essayez Spring Boot de 0 à 100.
Mise à niveau de la botte à ressort de la série 1.5 à la série 2.0
[Java Spring MVC] Contrôleur de confirmation de développement
L'histoire de la transition de Spring Boot 1.5 à 2.1
[Rails] Assignation de variables du contrôleur à JavaScript
Modifications lors de la migration de Spring Boot 1.5 vers Spring Boot 2.0
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
[Spring MVC] Comment transmettre des variables de chemin
Modifications majeures liées à Spring Framework 5.0 Web MVC
[Inverser] Spring Security (mis à jour de temps en temps)
Testez le contrôleur avec Mock MVC dans Spring Boot
Transition vers un contrôleur de vue avec Swift WebKit
Appuyez sur tous les "Guides" de Spring (mis à jour de temps en temps)
Passer la classe Form du Controller à Symleaf avec Spring-Boot
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
Comment utiliser Struts2 * Spring Framework (plugin Spring) Version de juin 2017
Pour se connecter de Spring à MySQL sur un serveur virtuel (non résolu)
Livraison push de l'application Spring vers Firebase Cloud Messaging
1. Démarrez Spring Framework à partir de 1
Étapes de déploiement de Struts 2.5.8
De Java à Ruby !!
Pour recevoir une demande vide avec Spring Web MVC @RequestBody