Есть ли способ сопоставить Spring 3.0 MVC @RequestParam напрямую с Java Bean? - PullRequest
1 голос
/ 21 марта 2011

Может ли это как-то работать? я должен использовать @InitBinder как-то?

public String myActionHandler(ModelMap model, @RequestParam MyPojoBean myBean){
    ...
}
  1. Я уверен, что где-то видел это, но я не уверен где. Является есть простой пример кода для этого?

  2. Если вышеизложенное возможно, то как могу ли я поймать исключение, если запрос не соответствует Бобу?

Ответы [ 2 ]

3 голосов
/ 21 марта 2011

Вам необходимо зарегистрировать пользовательский редактор в initBinder:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(MyPojoBean.class, new MyPojoEditor());
}

class MyPojoEditor extends java.beans.PropertyEditorSupport {
    @Override public String getAsText () {...}
    @Override public void setAsText (String s) {...}
}
2 голосов
/ 21 марта 2011

Вы можете сделать это, используя @InitBinder (см. Ответ @ Abdullah), что лучше всего, если вам нужно сделать это только для одного класса, или использовать пользовательский WebArgumentResolver (см. этот другой вопрос ), что является более общим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...