2012-05-30 4 views
0

스프링 MVC는 @RequestMapping 메서드에서 Model 또는 ModelMap 인수를 자동으로 연결하지만 ModelMap의 하위 클래스에서이 작업을 수행 할 수 있습니까? 그렇다면 하위 클래스 인스턴스를 어디에서 만들 수 있습니까?@RequestMapping에 대한 사용자 지정 Model 인수를 가질 수 있습니까?

스프링 MVC는 주석이 달린 인수를 명령 객체로 처리하고 요청에서 해당 필드를 채울 것이라고 생각합니다. 나는 정말로 이런 일이 일어나기를 원치 않으므로 조금 두려워한다.

답변

0

질문을 오해하지 않는 한 @ModelAttribute 주석 만 있으면됩니다.

@RequestMapping(value="/**/contractComplete.do", method = RequestMethod.POST) 
public static void handleContractComplete(
     @ModelAttribute(ParamConstants.CONTRACT) ContractCommand command, 
     BindingResult result, 
     HttpServletResponse response, HttpSession session) throws IOException 

을 아니면이 도움이 될 것입니다 : 예를 들어, 내가하는 방법은 다음과 같이 선언 을 내 컨트롤러의 선언, 나는

@Controller 
@SessionAttributes(ParamConstants.CONTRACT) 

을 그리고 결과는 것입니다 페이지를 시작할 때 모델에 넣은 것과 동일한 명령 객체를 사용합니다. 이 객체는 인수 클래스를 확장 (또는 구현하는) 것으로 생각할 수 있습니다.

+0

나는'@ ModelAttribute'와'@ SessionAttributes'를 이미 사용하고 있습니다. 그러나 10 개 정도의 모델 속성을 데이터 홀더 클래스에 넣으려고 했으므로이 주석을 더 이상 사용하지 않으려합니다. . 난 단지 내 모델 하위 클래스가 모델이되기를 바란다. –

+0

많은 검색을 한 후에 이것이 최선의 해결책이라고 생각합니다. –

관련 문제