Javascript 从JSP中的现有表单提交按钮调用小程序
我在SpringMVC应用程序中添加了一个小程序作为jar。 小程序用于在使用表单提交按钮提交文档之前对文档进行数字签名。 我从JSP调用了小程序代码:Javascript 从JSP中的现有表单提交按钮调用小程序,javascript,jsp,applet,Javascript,Jsp,Applet,我在SpringMVC应用程序中添加了一个小程序作为jar。 小程序用于在使用表单提交按钮提交文档之前对文档进行数字签名。 我从JSP调用了小程序代码: <object codebase="http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,5" width="130" height="25" name="SmartCardSignerApplet"> <
<object
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,5"
width="130" height="25" name="SmartCardSignerApplet">
<param name="type" value="application/x-java-applet;version=1.5">
<param name="code" value="com.smartcard.encryption.SmartCardSignerApplet">
<param name="archive" value="SmartCardSignerApplet.jar">
<param name="codebase" value="/Application/applet">
<param name="mayscript" value="true">
<param name="scriptable" value="true">
<param name="fileNameField" value="hashCode">
<param name="formNameField" value="approvalForm">
<param name="certificationChainField" value="certChain">
<param name="signatureField" value="encryptedtext">
<param name="signButtonCaption" value="Encrypt Data">
<comment>
<embed
type="application/x-java-applet;version=1.5"
pluginspage="http://java.sun.com/products/plugin/index.html#download"
code="com.smartcard.encryption.SmartCardSignerApplet"
archive="/Application/applet/SmartCardSignerApplet.jar"
width="130"
height="25"
mayscript="true"
scriptable="true"
scriptable="true"
fileNameField="hashCode"
formNameField="approvalForm"
certificationChainField="certChain"
signatureField="encryptedtext"
signButtonCaption="Encrypt Data">
</embed>
<noembed>
Smart card signing applet can not be started because
Java Plugin 1.5 or newer is not installed.
</noembed>
</comment>
</object>
这在JSP页面上嵌入了一个“加密数据”按钮,点击该按钮调用小程序代码。
我的表单中还有一个提交按钮:
<form:form id = form>
........................
........................
<input type="submit" value="Approve" id="approveBttn" >
</form:form>
这两个按钮在特定用途下工作正常。
我的要求是在成功处理小程序后,使用单个按钮调用小程序并提交表单。
我可以将小程序调用添加到现有表单提交按钮中吗。或者可以使用用于小程序调用的嵌入式按钮提交我的表单。
我对小程序比较陌生,因此如果我没有添加任何详细信息,请告诉我。您可以使用主小程序类中的netscape.javascript.JSObject对象,通过小程序java代码调用javascript函数。所以问题是,您可以创建一个javascript函数,当小程序完成其操作时作为回调函数使用,在这个回调函数中,您可以执行提交操作来实现您的目标
这可能类似于:
在您的JS中:
// this callback function will be called from applet
function callbackFn(){
document.getElementById('yourFormId').submit();
}
在小程序中:
public class YourApplet extends JApplet {
...
public void yourMethod() {
// perform your operations
...
// when it's finished call javascript function
Object[] params = ...; // params are passed to javascript function, could be null
JSObject.getWindow(this).call("callbackFn", params);
}
}
因此,当用户单击applet按钮时,将执行操作,然后applet调用javascript回调函数提交表单
注意:要在源代码中使用netscape.javascript.JSObject,必须在构建路径中添加JRE_HOME/lib/plugin.jar
希望这有帮助