2017-12-26 23 views
-1

나는 스트럿 1 응용 프로그램을 2 스트럿하는 스트럿 (1) 응용 프로그램을 포팅하고 있습니다를 제공 경계, org.apache.struts.actions.DispatchAction에서 상속 CommonAction 클래스가있다.
public class CommonAction extends DispatchAction struts2는 ModelDriven 와일드 카드가 오류

CommonAction 클래스는
public class ManageProfilesAction extends CommonAction

모두 서브 클래스 ManageProfilesAction 같은

CommonAction 웹에서 요청을 수신 액션 메소드가 같은 응용 프로그램의 다른 모든 Action 클래스의 슈퍼 클래스입니다. ManageProfilesAction의 경우 연관된 양식 빈은 ManageProfilesForm이고 CommonActionCommonForm 양식 빈이 있습니다.
현재 사용 스트럿이 방법은, 내가

public class CommonAction implements ServletRequestAware, ModelDriven<? extends CommonForm> { 
    protected CommonForm form = new CommonForm(); 
    @Override 
    public CommonForm getModel() { 
    return form; 
    } 
} 

public class ManageProfilesAction extends CommonAction { 
    private ManageProfilesForm form = new ManageProfilesForm(); 
    @Override 
    public ManageProfilesForm getModel() { 
    return form; 
    } 
} 

그래서 모두 CommonActionManageProfilesAction 등의 서브 클래스가 관련 모델/형태와 함께 웹 요청을받을 방법을 가질 수

처럼 CommonActionManageProfilesAction를 선언; CommonForm 및 ManageProfilesForm을 각각 호출합니다.
public class CommonAction implements ServletRequestAware, ModelDriven<? extends CommonForm> { required: class or interface without bounds found: ? extends CommonForm

은 어떻게 든 일부 자바 제네릭 마법 가능한 아니면 내가 철저하게 설계를 변경해야합니까 :
그러나, 나는 컴파일러 오류를 받고 있어요?

답변

0

이 대한 자세한 내용을보실 수 있습니다.

0

인터페이스 ModelDriven에는 클래스 또는 인터페이스 선언이 필요합니다. 인터페이스를 구현하여 바운드 와일드 카드를 사용할 수 없습니다.

public class CommonAction implements ServletRequestAware, ModelDriven<CommonForm> { 
    protected CommonForm commonForm = new CommonForm(); 
    @Override 
    public CommonForm getModel() { 
    return commonForm; 
    } 
} 

public class ManageProfilesAction extends CommonAction { 
    private ManageProfilesForm profForm = new ManageProfilesForm(); 
    @Override 
    public ManageProfilesForm getModel() { 
    return profForm; 
    } 
} 

당연히, ManageProfilesForm이 CommonForm에서 상속 :

당신은 내가 같이 CommonForm 및 ManageProfilesForm 모두를 사용하는 관리되는 Java tutorial.