2014-01-13 2 views
0

스크립트 추가시 문제가 있습니다. 내가 javax.faces.context.FacesContextextendedrenderkitservice를 사용하여 스크립트 추가

  1. 을 사용하고 같은

    FacesContext facesContext = FacesContext.getCurrentInstance(); 
        ExtendedRenderKitService extendRenderKitService = Service. 
         getRenderKitService(facesContext, ExtendedRenderKitService.class); 
        try { 
         String methodCall = "afterPPRProcessing('" + journeyId + "',new Array (" + dynamicParams + "))"; 
         System.out.println("methodCall::" + methodCall); 
         extendRenderKitService.addScript(facesContext, methodCall); 
        } catch (Exception ex) { 
         System.out.println("exception while PPR processing ", ex); 
        } 
    

    아래에 내 코드를 찾아주세요;

  2. org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
  3. org.apache.myfaces.trinidad.util.Service;

실제로 (Button 클릭 등) 이벤트를 기반으로 Omniture를 생성하고 싶습니다. afterPPRProcessing은 javascript의 메소드입니다. 코드는 완벽하게 실행하고 또한 인쇄 "methodCall을"을

페이지를 실행하는 동안 나는 'afterPPRProcessing'방법에 중단 점을 설정 한
methodCall::afterPPRProcessing('abc',new Array ('xyz','pqr')) 

로하지만 중단 점에서 중지되지 않습니다.

태그가 생성되지 않은 이유를 이해하는 데 도움을주십시오. 코드 작성 중 실수가 있습니까? 사전에

덕분에

답변

1

ExtendedRenderKitService를 사용하여 JavaScript 함수를 호출하려면 함수 호출이 PPR 응답 (요청 된 페이지 URL에 도달하면 생성되는 응답)에 있어야합니다. 분석 중 omniture 호출 "afterPPRProcessing"이 PPR Response에 없다는 것을 알았습니다. 그 이유는 위에서 언급 한 코드를 사용하여 Bean 클래스의 스크립트를 추가 한 후 전체 페이지를 새로 고치는 코드가 있다는 것입니다. 코드가

FacesContext context = FacesContext.getCurrentInstance(); 
    String viewId = context.getViewRoot().getViewId(); 
    ViewHandler handler = context.getApplication().getViewHandler(); 
    UIViewRoot root = handler.createView(context, viewId); 
    root.setViewId(viewId); 
    context.setViewRoot(root); 

이 코드는 PPR 이벤트 (켜짐/꺼짐)를 캡처하는 동안 페이지를 새로 고칩니다. 결과적으로 스크립트는 ExtendedRenderKitService의 facesContext에 추가되지 않습니다.

이 코드를 주석 처리 한 후 PPR 통화가 정상적으로 작동하며 매트릭스를 생성 할 수 있습니다. 이것이 내가 확인 한 다른

0

몇 가지 이유는이 코드가 작동하지 않을 수 있습니다 :

  1. 자바 스크립트 방법 afterPPRProcessing는
  2. 자바 스크립트 방법 afterPPRProcessing가 같은 번호가없는 정의되지 않은 인수 중

크롬 개발자 콘솔을 실행하여 javascript 기능이 존재하는지 확인하고 다음 구문을 시도하십시오. i 브라우저가 모든 것이 옳은지 확인하십시오.

+0

도움과 afterPPRProcessing 방법이 자바 스크립트에 정의되어 있는지 확인하고 같은 인수가 있습니다

희망을 돕는 사람들에게

감사합니다. 콘솔에서 메소드를 실행하려고 시도했고 태그가 생성되었습니다. 그러나 자바 코드에서 타격을하려고 할 때 태그가 생성되지 않습니다. – Jigar

+0

이 함수가 HTML DOM을 조작하려고하면 ADF Javascript API를 사용하고 있는지 확인해야합니다. ADF Javascript API를 사용하지 않으면 해당 API를 성공적으로 수행 할 수 없습니다. –

+0

ADF Javascript API를 사용하고 있습니다. 생성하지 않는 이유는 무엇일까요? 어떤 도움을 주셔서 감사합니다 사전에 – Jigar