사용자가 5 가지 유형의 주문을 작성할 수있는 응용 프로그램을 작성 중입니다. 나는 최대 절전 모드를 사용하고 있으며 모든 5 개의 하위 클래스는 추상 클래스 인 Order 클래스를 확장합니다. 내가 뭘 할 수 있기를 원한다면 모든 5 가지 유형의 주문을 작성하고 사용자가 컨트롤러에 유효성을 검사하기 위해 만든 모든 하위 클래스 유형을 전달하지만 상위 클래스 유형을 사용하는 JSP를 갖는 것입니다. 예를 들어, PRNOrder는 추상 Order 클래스를 확장하는 구체적인 클래스입니다.스프링 컨트롤러 내부의 메소드는 추상 매개 변수 유형의 유효성을 검사 할 수 있습니까?
public String savePRNOrder(@PathVariable String idPatient, @Valid @ModelAttribute("order") PRNOrder order,
BindingResult result, ModelMap model)
: 나는 현재 다음과 같은 방법 서명으로 PRNOrder 유형을 검증하기 위해 내 컨트롤러 방법을 사용할 수 있어요
Order order = new PRNOrder();
order.setOrderType(orderTypeService.findByName("PRN"));
하십시오 PRNOrder 객체를 생성하고 JSP에 전달하는 방법을 가정 분명히 노력하고있다
org.springframework.beans.BeanInstantiationException: Failed to instantiate [mdhis_webclient.entity.Order]: Is it an abstract class?; nested exception is java.lang.InstantiationException
봄 : 나는 PRNOrder 그냥 주문을 시도하고 난 다음 예외가 모든 서브 클래스 형식과 호환되도록하는 속성을 변경하려고 객체를 Order 객체로 인스턴스화 할 수 있지만 객체를 실제로 어떤 유형으로 취급하고 추상 클래스를 인스턴스화하지 않아도되도록하는 방법이 있습니까?
감사합니다.
주문을 추가 할 때만 작동한다는 점에서 근본적인 결함이 있습니다. 사용자가 주문을 편집하면 새로운 객체가 반환되고 분명히 실패합니다. 여전히 이것을 해결할 방법을 찾고 있습니다. – Martin
실제로 편집에도 잘 작동합니다! Spring이 현존하는 객체를 맹목적으로 다시 인스턴스화하는 것만 큼 영리한 것처럼 보입니다. – Martin