Аспект, который перехватывает вызовы метода, который использует аннотацию @RequestMapping и для каждого параметра, на котором есть аннотация @Valid, вызывает соответствующий валидатор в аспекте.

я проблема с использованием@Valid по параметру метода обработчика на моем@Controller, Мой код выглядит так:

@RequestMapping(value=BIBBLE_BOBBLE_URI_PATTERN + "/widgets", method=RequestMethod.POST)
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public Widget saveNewWidget(
        @PathVariable final String username,
        @PathVariable final String bibbleBobbleName,
        @Valid @RequestBody final Widget widget,
        final BindingResult results,
        final HttpServletRequest request,
        final HttpServletResponse response)

гдеWidget это класс для одного из моих доменных объектов. Я использую@RequestBody аннотация, чтобы указать, что полезная нагрузка запроса отображается наwidget (в моих тестах запросы были в формате JSON, хотя Джексон находится на моем пути к классам, поэтому я также мог использовать XML).

Как видите,BindingResult параметр следует непосредственно послеWidget параметр, но я получаю следующую ошибку:

java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!

Как мне применить@Valid аннотация к@RequestBody параметр, а затем получить результаты?

Постскриптум я используюannotation-driven управлять подключением контроллеров, согласованием контента и т. д.

Ответы на вопрос(2)

Ваш ответ на вопрос