Meine Aufgabe ist - ein Modellattribut durch gegebene Anfrageparameter zu erstellen, es zu validieren (in der gleichen Methode) und es der Ansicht vollständig zu geben.Spring - BindingResult zum neu erstellten Modellattribut hinzufügen
wurde ich dieses Beispiel-Code angegeben:
@Controller
class PromotionController {
@RequestMapping("promo")
public String showPromotion(@RequestParam String someRequestParam, Model model) {
//Create the model attribute by request parameters
Promotion promotion = Promotions.get(someRequestParam);
//Add the attribute to the model
model.addAttribute("promotion", promotion);
if (!promotion.validate()) {
BindingResult errors = new BeanPropertyBindingResult(promotion, "promotion");
errors.reject("promotion.invalid");
//TODO: This is the part I don't like
model.put(BindingResult.MODEL_KEY_PREFIX + "promotion", errors);
}
return
}
}
Das Ding sicher funktioniert, aber auch diesen Teil mit MODEL_KEY_PREFIX Schlüssel erstellen und Attributnamen sieht sehr hackish und kein Frühling Stil zu mir. Gibt es eine Möglichkeit, das Gleiche schöner zu machen?
Welche Schnittstelle und in welcher Klasse sind wir? Und in welcher Methode? –
Die Klasse und Methode zum Code hinzugefügt. – bezmax
Ich glaube nicht, dass es eine gute Möglichkeit dafür gibt. Die Bindungsvalidierung dient dazu, Parameter zu binden und zu validieren, keine willkürlichen Geschäftsobjekte. Wenn Sie das also tun wollen, wird es etwas unordentlich. – skaffman