2011-08-08 3 views
1

POST 후 GET으로 리디렉션 중입니다. 난 그냥의 ModelAndView에 getSuccessView()를 전달하고 성공을보기로 redirect:<success_view_url>를 넣어 경우Spring Web/MVC가 내 모델 속성을 리디렉션 뷰의 URL에 추가하지 않는 이유는 무엇입니까?

@Override 
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception { 
    ClientID clientId = ((MyCommand) command).getClientId(); 
    return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId); 
} 

같은 문제가 발생합니다 .... 봄 웹은 '된 ClientID'모델 내 URL에 아래 속성을 추가해야하지만, 그렇지 않아 내 설정에서.

답변

1

기본적으로 RedirectView은 URL에 '단순 값 유형'이라고하는 것만 전달합니다. c.f. RedirectView.isEligibleValue().

이 솔루션은 오히려 더 많은 사용자 정의 형보다 String으로 모델에 ClientId을 추가하는 것입니다 : 마지막 줄에

@Override 
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception { 
    ClientID clientId = ((MyCommand) command).getClientId(); 
    return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId.toString()); 
} 

.toString().

(자신의 RedirectView 하위 클래스에서) isEligibleValue()을 재정의 할 수 있습니다.하지만 실제로 거기에 넣는 모든 것을 toString로 쉽게 처리 할 수 ​​있습니다.

관련 문제