applet在jsp中动态加载

时间:2012-07-23 18:47:21

标签: java jquery applet

我的代码中有以下applet。我想从jsp中删除此代码并包含单击按钮并在jQuery成功后删除。

<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。

提前感谢您的帮助。如果有关于我的问题的任何进一步信息,请告诉我。

2 个答案:

答案 0 :(得分: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>

确保在Action类中设置requestSuccessState。

答案 1 :(得分:1)

实际上,根据Java 6文档,调用applet最合适的方法是使用Sun提供的javascript。这是因为不同的浏览器与applet的处理方式不同。有些人想要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的commandButton,但同样的想法也适用于你正在使用的基于html的表示层。