사용자 정의 객체/인터페이스 구현을 내 컨트롤러에 바인드하고 싶습니다.타입 매개 변수가있는 SpringFramework 사용자 정의 바인딩
class Form{
private Action action;
// setter/getter
}
interface Action{}
class Action1 implements Action{}
class Action2 implements Action{}
@Controller
class ActionController{
@RequestMapping("/")
public String action(Form form){
form.getAction(); // this should be an instance of Action1 or Action2
}
}
Action1 또는 Action2인지 확인하려면 HTML 양식에 형식 매개 변수를 추가하고 싶습니다.
<input name="form.action.type" value="1" />
이미 사용 가능한 것과 같은 것이 있거나이를 구현하는 방법을 알고있는 사람이 있습니까?
PropertyEditors를 이미 살펴 봤지만, 내가 말할 수있는 한 하나의 필드 만 문자열로 가져오고 다른 속성에는 액세스 할 수없는 것 같습니다. 가능하면 자신 만의 HandlerMethodArgumentResolver를 만드는 것보다 쉬운 방법을 찾고 있습니다.
귀하의 요구 사항을 충족시키는 확실한 방법이 있습니다. 그러나 폼에 포함 된 다른 필드와 액션이 무엇인지 알지 못하면 PropertyEditor와 Converter를보다 자세히 알려주기가 어렵습니다. –
폼과 액션 객체는 많은 속성을가집니다. Action1은 모든 속성 (유형 제외)에서 Action2와 다릅니다. Action1 또는 Action2에는 유형 필드가있는 Object가 더 많이 포함될 수도 있습니다. – cin