2011-09-20 57 views
0

我想從JS的Java小程序中調用方法。我對如何安排我的工作流程有點困惑。我有一個包含javascript(pending.js)的jsp(pending.jsp)類。 pending.jsp只是一個容納pending.js的容器。 pending.js的目的是讓用戶取消創建報告。JSP - JS - Java交互

pending.jsp:

<div id="pending-reports-container" class="pending-reports-container"> 

    <div id="pending-reports"> 

    </div> 
</div> 

pending.js:

function update_pending_reports(response_data) 
{ bla } 
function delete_report(report_id) 
{ bla } 
function request_pending_reports() 
{ bla } 
function start_pending_reports() { 
    request_pending_reports(); 
    setInterval("request_pending_reports()", 5000); 
} 

由於取消報告有時是不是有效我想用Java來請求取消行進至Postgres的(待定。 js不會殺死在postgres中工作的進程)。我創建了我的Java類,但我不知道在哪裏添加它。我知道我可以使用標籤的,但是當我試圖給這個標籤添加到我的JSP文件是這樣的:

<div id="pending-reports-container" class="pending-reports-container"> 

    <div id="pending-reports"> 
     <applet id="LS" width=1 height=1 code ="module/LicenseCheckService.class" codebase="."/> 
    </div> 
</div> 

我不能使用此代碼從我pending.js實現它:

getJS = document.getElementById("LS"); 

我的代碼有什麼問題,或者我在這個結構中錯了嗎?

+1

不要將字符串傳遞給'setInterval'。傳遞函數:'setInterval(request_pending_reports,5000);'或者如果你需要參數:'setInterval(function(){request_pending_reports(something);},5000);' – ThiefMaster

回答

1

請參閱Invoking Applet Methods From JavaScript Code Oracle文檔。

Nutshell版本是指JavaScript通過applet ID引用applet對象,並且可以調用它的方法。

appletId.anAppletMethod(); 
var anAppletClass = appletId.getAnAppletClass(); 
anAppletClass.methodCalled("with a JavaScript string parameter"); 
// Etc. 
1

查看Dave Newton的回答。

或者,您還可以檢查HTML字段或從Applet調用JavaScript方法。您可以構建由小應用程序主動控制的交互。

這裏的鏈接:Java Applet To JS Link