Ich arbeite an der Konvertierung eines Legacy-Projekts in Spring (versuchen, so wenig wie möglich für jetzt anzupassen) und ich bin auf ein kleines Problem mit dem Mapping/Übersetzen Legacy-Parameter zu a Modellattributobjekt. Ich mag mich völlig irren, wenn ich über dieses Problem nachdenke, aber mir scheint, dass die Umsetzung eines Parameters in ein spezifisches Modellattribut Setter den Request-Parameter über eine Methode zum Erstellen eines Modellattributs übergibt und manuell den richtigen Setter aufruft:Spring @ModelAttribute und Übersetzungsanforderung Parameter Bindungsnamen
@ModelAttribute("form")
public MyForm createMyForm(@RequestParameter("legacy-param") legacy) {
MyForm myForm = new MyForm();
myForm.setNewParam(legacy);
return myForm;
}
Ich möchte nicht unbedingt den Namen des Anfrageparameters ändern, da einige Javascript und JSPs davon abhängig sind, dass sie so benannt werden, aber gibt es irgendeine Möglichkeit, so etwas zu tun? Oder gibt es eine andere Möglichkeit, Anforderungsparameter zu Modellattributen zuzuordnen/zu übersetzen?
public class MyForm {
@ParameterName("legacy-param")
private String newParam;
public void setNewParam(String value) { ... }
public String getNewParam() { ... }
}
@Controller
public class MyController {
@RequestMapping("https://stackoverflow.com/a/url")
public String myMethod(@ModelAttribute("form") MyForm myForm, BindingResult result) { ... }
}
wo kommt @ParameterName kommt @ModelAttribute in Ihren JSPs verwenden? – OrangeDog