Das einfachste Verfahren ist
Andere Ersetzungen umfassen Validation, View und Interceptor. Sie können jedoch zu Modulen gemacht werden, die von Struts2 unabhängig sind, sodass sie nacheinander ersetzt werden können. Diesmal ist die Controller Edition.
Die Action-Klasse von Struts2 soll mit Anmerkungen unter Verwendung des ** Convention-Plug-Ins ** beschrieben werden. Wenn Sie das Convention-Plug-In nicht installiert haben, wenden Sie zuerst das Convention-Plug-In an und fügen Sie die Struts2-Annotation in die Action-Klasse ein.
Struts2 Official: Convention Plugin: https://struts.apache.org/docs/convention-plugin.html Qiita: Struts2-Aktionsklasse basierend auf Annotation schreiben (2016 Spring Ver.) Http://qiita.com/alpha_pz/items/4a97df916102dad2e2bc
Die Implementierung der Action-Klasse ist wie folgt
Behalte es einfach.
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;
}
Wenn Sie auf diesen Punkt eingrenzen, können Sie ihn durch den Spring MVC Controller ersetzen.
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;
}
}
Dies ermöglicht eine Eins-zu-Eins-Zuordnung.
# | die Einstellungen | Struts2 Convention | Spring MVC |
---|---|---|---|
1 | Pfad | @Namespace | @RequestMappings |
2 | Steuerpfad | @Action | @GetMapping,@Post Mapping etc. |
3 | Ansicht Ansicht | @Results,@Result | Gibt nur den Ansichtsnamen oder den Ansichtsnamen von ModelAndView zurück |
4 | Zu empfangende Parameter | Mitgliedsvariable + Mutatormethode(※1) | Methodenargumente |
5 | Inhalt zu antworten | Mitgliedsvariable + Zugriffsmethode(※2) | Rückgabewert der Methode |
Bei der Migration ist es wichtig, die Controller-Service-Beziehung nach Spring MVC in die Action-Service-Beziehung zu bringen und das Anforderungs- / Antwortobjekt im Feld Action-Klasse in der Controller-Methode zu behandeln. Ist zu gehen.
Recommended Posts