2016-10-04 2 views

답변

3

가장 좋은 방법은 MVC 모델을 따르는 것입니다. 이 알고리즘을 사용하면됩니다 :

viewobject 인터페이스의 구현을 만듭니다. 여기서 쿼리에 전달할 매개 변수를 사용하여 메서드를 정의 할 수 있습니다. 그렇게하려면 Viewobject 정의 - "Java 탭"- "Java 클래스"- "View Object 클래스 생성 : YourViewObjectViewImpl"및 "Include bind variable accessors"를 선택하고 확인 버튼을 누릅니다. YourViewObjectViewImpl.java 클래스를 찾고 필요한 매개 변수로 메소드를 구현하십시오.

public class YourViewObjectViewImpl extends ViewObjectImpl { 

    // Generated method 
    public void setA(Long value) { 
     setNamedWhereClauseParam(value); 
    } 

    // Generated method 
    public void setB(Long value) { 
     setNamedWhereClauseParam(value); 
    } 

    // Your custom method 
    public void refreshQuery(long a, long b) { 
     this.clearCache(); 
     setA(a); 
     setB(b); 
     this.executeQuery(); 
    } 
} 

지금 당신의 ViewController이 방법을 볼 수 있도록해야합니다 는 예를 들어, 당신은 당신의 VO를 새로 고치려면이 매개 변수가 필요합니다. ViewObject 정의의 java 탭에서 "클라이언트 인터페이스"를 편집하고 셔틀 refreshQuery 메서드를 오른쪽으로 이동하십시오. 확인을 누릅니다. 이제 Jdev는 ViewController 프로젝트에서 메소드를 볼 수있게하는 두 개의 클래스를 생성합니다.

다음 단계는 페이지 정의 바인딩에서 refreshQuery를 정의하는 것입니다. 페이지 정의로 이동하고 바인딩 패널에서 + 버튼을 누릅니다. 목록에서 methodAction을 선택하십시오. AppModuleDataControl에서 ViewObject를 선택하고 Operation 콤보 상자에서 refreshQuery 메서드를 선택합니다. 매개 변수가있는 테이블에서 표현식 언어를 사용하여 값을 정의 할 수 있습니다. 예를 들어, # {viewScope.myBean.a} 및 # {viewScope.myBean.b}을 누릅니다. ok를 누릅니다.

이제 당신은 예를 들어 콩에서이 방법을 수행 할 수 있습니다 : 작동

public class MyBean { 
    public Long a = 0; 
    public Long b = 0; 

    public void refresh() { 
     a = 1; 
     b = 2; 
     BindingContext bc = BindingContext.getCurrent(); 
     DCBindingContainer dcbc = (DCBindingContainer)bc.getCurrentBindingsEntry(); 
     dcbc.getOperationBinding("refreshQuery"); 
     dcbc.execute(); 
    }  
} 
+0

! 고맙습니다. – Graeme

+0

당신은 환영합니다. – vssk

관련 문제