2012-07-23 60 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