Spring - добавляющий BindingResult к недавно созданному образцовому атрибуту

Моя задача - чтобы создать образцовый атрибут данными параметрами запроса, проверить его (в том же методе) и дать его целый Представлению.

Мне дали этот пример кода:

@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 мне. Существует ли способ сделать то же самое более симпатичным?

18
задан bezmax 16 June 2010 в 11:33
поделиться

1 ответ

Скаффман ответил на вопрос, но исчез, поэтому я отвечу на него за него.

Проверка привязки предназначена для привязки и проверки параметров, а не произвольных бизнес-объектов.

Это означает, что если мне нужно выполнить некоторую настраиваемую проверку некоторых общих данных, которые не были отправлены пользователем - мне нужно добавить некоторую настраиваемую переменную для хранения этого статуса и не использовать BindingResult.

Это отвечает на все вопросы, которые у меня возникли с BindingResult, поскольку я думал, что его нужно использовать как контейнер для любых ошибок.

Еще раз спасибо @Skaffman.

4
ответ дан 30 November 2019 в 09:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: