Il mio compito è - creare un attributo model in base a determinati parametri di richiesta, convalidarlo (nello stesso metodo) e assegnarlo interamente alla View.Spring: aggiunta di BindingResult all'attributo model appena creato
mi è stato dato questo codice di esempio:
@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
}
}
questa cosa funziona certo, ma che parte con la creazione di chiave con MODEL_KEY_PREFIX e nome attributo sembra molto hacker e non uno stile di primavera per me. C'è un modo per rendere la stessa cosa più carina?
Quale interfaccia e quale classe siamo? E in quale metodo? –
Aggiunta classe e metodo al codice. – bezmax
Non penso che ci sarà un bel modo per farlo. La validazione vincolante è lì per legare e validare i parametri, non oggetti di business arbitrari, quindi se vuoi farlo, sarà un po 'complicato. – skaffman