2014-12-11 2 views
0

스프링 - mvc 애플리케이션에 jar로 애플릿이 추가되었습니다. 애플릿은 양식 제출 단추를 사용하여 제출하기 전에 문서에 디지털 서명하는 데 사용됩니다. 내 JSP에서 코드를 애플릿 호출을 만들었습니다 :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"> 
    <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> 

이 두 버튼은 특정 목적을 위해 잘 작동됩니다 또한 나는 내 형태로 버튼을 제출해야합니다. 제 요구 사항은 애플릿 호출과 양식 제출 (애플릿 처리가 성공적으로 완료된 후)에 단일 버튼을 사용하는 것입니다. 기존 양식 제출 버튼에 애플릿 호출을 추가 할 수 있습니까? 또는 애플릿 호출에 사용되는 포함 된 단추를 사용하여 양식을 제출할 수 있습니까? 필자는 애플릿이 비교적 새 것이므로 어떤 세부 사항도 추가하지 못한 경우 알려 주시기 바랍니다.

답변

0

기본 애플릿 클래스의 netscape.javascript.JSObject 개체를 사용하여 애플릿 Java 코드를 통해 javascript 함수를 호출 할 수 있습니다. 따라서 애플릿이 애플릿을 끝낼 때 콜백 함수로 작동하는 javascript 함수를 만들 수 있습니다.이 callback 함수에서 목표를 달성하기 위해 전송 작업을 수행 할 수 있습니다.

이 될 수있는 일처럼 : 당신의 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); 
    } 

} 

애플릿 버튼을 사용자가 클릭은 작업이 수행 될 때 애플릿은 양식을 제출하는 javascript 콜백 함수를 호출합니다.

참고 : netscape.javascript.JSObject을 소스 코드에 사용하려면 빌드 경로에 JRE_HOME/lib/plugin.jar을 추가해야합니다.

호프가 도움이 되었으면

관련 문제