Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsp中applet的动态加载_Java_Jquery_Applet - Fatal编程技术网

Java jsp中applet的动态加载

Java jsp中applet的动态加载,java,jquery,applet,Java,Jquery,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="zebr

我的代码中有下面的小程序。我想从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


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

假设您使用与显示模板相同的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。

实际上,根据Java 6文档,调用小程序最合适的方法是使用Sun提供的javascript。这是因为不同的浏览器处理小程序的方式不同。有些人想要嵌入标签,有些人想要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="#"/>

函数runApplet(){
变量属性={
代码:“jzebra.printpapplet.class”,
存档:“${pageContext.request.contextPath}/jzebra.jar”,
宽度:500,
身高:300
};
变量参数={
打印机:“斑马”
};
变量版本='1.6';
runApplet(属性、参数、版本);
}
...

我在这里使用的是JSF中的commandButton,但同样的想法也适用于您正在使用的任何基于html的表示层。

这非常有效,谢谢。任务完成后如何卸载?您想做什么?在小程序执行后隐藏它?我还没有尝试过这样做,但我会尝试创建一个javascript函数来隐藏包含小程序的容器(即,将脚本位包装在div中),并从小程序中调用该函数。查阅有关如何从小程序代码调用javascript的文档。我想那会管用的,不过我自己还没试过。