backing bean 메소드를 실행하고 쿼리를 실행 한 다음 테이블을 새로 고치기위한 검색 버튼이 있습니다. 나는 프로세스에서 쿼리의 바인딩 매개 변수를 변경하려고합니다. 이 일을하는 가장 좋은 방법은 무엇입니까?Backing Bean에서 쿼리를 실행하고 ADF에서 테이블을 업데이트하는 적절한 방법
감사합니다.
backing bean 메소드를 실행하고 쿼리를 실행 한 다음 테이블을 새로 고치기위한 검색 버튼이 있습니다. 나는 프로세스에서 쿼리의 바인딩 매개 변수를 변경하려고합니다. 이 일을하는 가장 좋은 방법은 무엇입니까?Backing Bean에서 쿼리를 실행하고 ADF에서 테이블을 업데이트하는 적절한 방법
감사합니다.
가장 좋은 방법은 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();
}
}
! 고맙습니다. – Graeme
당신은 환영합니다. – vssk