Моя задача - чтобы создать образцовый атрибут данными параметрами запроса, проверить его (в том же методе) и дать его целый Представлению.
Мне дали этот пример кода:
@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
}
}
Эта вещь верные работы, но которые расстаются с созданием ключа с MODEL_KEY_PREFIX и названием атрибута, смотрит очень hackish и не стиль Spring мне. Существует ли способ сделать то же самое более симпатичным?
Скаффман ответил на вопрос, но исчез, поэтому я отвечу на него за него.
Проверка привязки предназначена для привязки и проверки параметров, а не произвольных бизнес-объектов.
Это означает, что если мне нужно выполнить некоторую настраиваемую проверку некоторых общих данных, которые не были отправлены пользователем - мне нужно добавить некоторую настраиваемую переменную для хранения этого статуса и не использовать BindingResult.
Это отвечает на все вопросы, которые у меня возникли с BindingResult, поскольку я думал, что его нужно использовать как контейнер для любых ошибок.
Еще раз спасибо @Skaffman.