2012-07-23 61 views
1

我的代碼中有下面的小程序。我想從jsp中刪除這些代碼,並在點擊按鈕時包含這些代碼,並在jQuery成功後刪除。動態加載jsp的小程序

<applet id="jzebra-applet" name="jZebra" code="jzebra.PrintApplet.class" archive="${pageContext.request.contextPath}/jzebra.jar" width="1" height="1"> 
     <param name="printer" value="zebra"> 
</applet> 

我正在使用jQuery和Struts2。

非常感謝您的幫助。請讓我知道是否有關於我的問題的更多信息。

回答

1

實際上,根據Java 6文檔,調用applet最合適的方式是使用由Sun提供的JavaScript。這是因爲不同的瀏覽器對小程序的處理方式不同。有些想要EMBED標籤,有些想要APPLET標籤等等。儘管如此,如果你按照他們的建議,這只是在點擊事件中調用JavaScript的問題。

<script src="http://www.java.com/js/deployJava.js"></script> 
<script> 
function runApplet(){ 
    var attributes = { 
    code : 'jzebra.PrintApplet.class', 
    archive : '${pageContext.request.contextPath}/jzebra.jar', 
    width : 500, 
    height : 300 
    }; 
    var parameters = { 
    printer : 'zebra' 
    }; 
    var version = '1.6'; 
    deployJava.runApplet(attributes, parameters, version); 
} 
</script> 
... 
<h:commandButton value="Run applet" onclick="runApplet();" action="#"/> 

我使用JSF從這裏一個命令,但同樣的想法適用於任何基於HTML的表示層您正在使用。

+0

這工作得很好,謝謝。一旦任務完成,我該如何卸載? – changeme 2012-07-23 21:00:42

+0

你想做什麼?執行後隱藏小程序?我還沒有嘗試過這樣做,但我會嘗試創建一個隱藏包含小程序的容器的javascript函數(即將腳本位包裝在div中),並從applet中調用該函數。查找關於如何從applet代碼調用javascript的文檔。儘管如此,我認爲這會奏效,但我沒有嘗試過。 – Andre 2012-07-23 21:08:07

+0

肯定會嘗試做到這一點。 – changeme 2012-07-24 18:53:58

1

假設你使用的是相同的JSP頁面作爲模板顯示,你可以把一個Struts條件標記在頁面:

<s:if test="%{requestSuccessState == false}"> 

<applet id="jzebra-applet" name="jZebra" code="jzebra.PrintApplet.class" archive="${pageContext.request.contextPath}/jzebra.jar" width="1" height="1"> 
     <param name="printer" value="zebra"> 
</applet> 

</s:if> 

務必將requestSuccessState在你的Action類。

+0

我試過安德烈提供的解決方案,謝謝你的回覆。 – changeme 2012-07-23 21:01:33