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.
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
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.
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