2012-05-09 8 views
4

Spring MVC의 폼 바인딩에 폼 데이터로 인스턴스화하고 채울 클래스를 지정하기 위해 어떤 종류의 힌트를 바인딩 할 수 있습니까?Spring MVC에서 다형 폼 바인딩하기

다른 개체의 컬렉션을 나타내는 동적 양식을 만들려는 시도가 매우 드문 경우가 있습니다. 사용자는 선택한 유형의 객체를이 컬렉션에 추가 한 다음 양식 요소를 사용하여 해당 객체 유형의 속성을 설정할 수 있습니다. jQuery를 사용하여 폼을 만드는 방법을 알아낼 수는 있지만, 미리 바인딩 할 타입을 알지 못할 때 Spring이 POST 데이터로드를 처리하는 방법을 모르겠습니다.

+0

참조 [다른 질문에 대한 내 대답 (https://stackoverflow.com/a/43414488)에 대한 대체 솔루션 아이디어를. – user11153

답변

3

내가 생각할 수있는 한 가지 방법은 사용자 지정 HandlerMethodArgumentResolver을 작성하는 것입니다.이 사용자 지정은 컨트롤러 메서드의 인수 값으로 요청을 변환하는 역할을합니다. Spring MVC에 사용자 지정 처리기 메서드 인수 리졸버가 주석 처리 된 특정 메서드 인수 (예 : @CustomType Object argument)를 해결할 것임을 나타내는 사용자 지정 주석을 생성 할 수 있어야합니다.

호출이 처리기 확인자에 도착하면 json 요청이 매핑해야하는 유형을 결정하고 실제 유형으로 json 매퍼를 호출 할 수 있습니다.

사용자 지정 인수 해결이 방법을 등록 할 수 있습니다 :

<annotation-driven> 
    <argument-resolvers> 
     <beans:bean class="..CustomArgumentResolver"/> 
    </argument-resolvers> 
</annotation-driven> 
관련 문제