2013-02-20 1 views
2

나는 Edraw Office Viewer 구성 요소를 사용하여 & 파일을 엽니 다. 내 파일을 내 대상 지점에 저장하여 JavaScript를 사용하여 파일을 저장하려고합니다. 그러나 나는 한 순간에 붙어있다. 자바 스크립트를 사용하여 문서를 저장하려면 아래 코드를 보여야합니다. ZK MVVM에서 javascript를 사용하여 Java 메소드를 호출하는 방법은 무엇입니까?

function f_saveDocument(){ 
    if(document.OA1.IsOpened)   
    { 
    var saveAsFileName = document.getElementById('hdnFileName').value; 
    alert(saveAsFileName); 
     var fileFormat = saveAsFileName.substring(saveAsFileName.lastIndexOf(".")); 
     if(fileFormat == '.docx') { 
      var toUnLockFile = 'MergeTest'+fileFormat; 
      var tempFileLocation = document.OA1.GetTempFilePath(saveAsFileName); 
      var tempToUnLockFileLocation = document.OA1.GetTempFilePath(toUnLockFile); 
      document.OA1.SaveAs(tempFileLocation,12); 
      document.OA1.SaveAs(tempToUnLockFileLocation,12); 
      document.OA1.HttpInit(); 
      document.OA1.HttpAddPostFile(tempFileLocation); 
       document.OA1.HttpPost(""); 
      document.OA1.ClearTempFiles(); 
     } else { 
     alert("asdsa"); 
      document.OA1.HttpInit(); 
      document.OA1.HttpAddPostOpenedFile(saveAsFileName); 
      **zAu.send(new zk.Event(zk.Widget.$('$btnSave'), "saveFile", {'' : {'data' : {'nodeId': ''}}}, {toServer:true}));** 
     alert("moved"); 
     } 

    } 

는 JSP 페이지의 경우에는 내가 HttpPost이 아니라 자바 방법이 자바 스크립트에서 이동하는 방법에 ZK의 경우 내 JSP의 URL을 넣을 수 있습니다. 그래서이 문제를 극복하기 위해 위젯을 사용하여 viewmodel 클래스에있는 saveFile() 메서드를 호출합니다. 그러나 zAu.send이 제대로 작동하지 않습니다. ZK MVVM에서 다른 솔루션이 JavaScript를 통해 Java 메소드를 호출 할 수 있습니다.

답변

3

코드는

zAu.send(new zk.Event(zk.Widget.$('$btnSave'), "onSaveFile", {'' : {'data' : {'nodeId': ''}}}, {toServer:true})); 

이벤트 이름 때문에이 ID btnSave으로 ComponentonSaveFile
이벤트가 발생합니다 on로 시작해야합니다 단순히 잘못된 것입니다. 그냥 listen입니다.

+0

도움을 주신 Nabil! – psisodia

+0

Nabil : 질문이 하나 더 있습니다 ... HttpPost에서 zk url을 전달할 방법이 있습니까? 사실, 저는 MultipartRequest에 대한 Java 메소드에서 요청을 받기를 원합니다. \t MultipartRequest mr = new MultipartRequest (request, savePath, 50000000); – psisodia