HTML5-Formularübermittlung handhaben

HTML5-Formulare können an Servlet gesendet werden, das in AEM gehostet wird. Auf die übermittelten Daten kann im Servlet als Eingabestream zugegriffen werden. Um Ihr HTML5-Formular zu senden, müssen Sie Ihrer Formularvorlage mithilfe von AEM Forms Designer "HTTP-Senden-Schaltfläche"hinzufügen

Erstellen des Submit-Handlers

Ein einfaches Servlet kann erstellt werden, um die Übermittlung des HTML5-Formulars zu verarbeiten. Die übermittelten Daten können dann mithilfe des folgenden Codes extrahiert werden. Dieses Servlet wird Ihnen im Rahmen dieses Tutorials zur Verfügung gestellt. Installieren Sie das Servlet mit Package Manager.

Der Code aus Zeile 9 kann zum Aufrufen des J2EE-Prozesses verwendet werden. Stellen Sie sicher, dass Sie Adobe LiveCycle Client SDK Configuration konfiguriert haben, wenn Sie den Code zum Aufrufen des J2EE-Prozesses verwenden möchten.

StringBuffer stringBuffer = new StringBuffer();
String line = null;
java.io.InputStreamReader isReader = new java.io.InputStreamReader(request.getInputStream(), "UTF-8");
java.io.BufferedReader reader = new java.io.BufferedReader(isReader);
while ((line = reader.readLine()) != null) {
    stringBuffer.append(line);
}
System.out.println("The submitted form data is " + stringBuffer.toString());
/*
        * java.util.Map params = new java.util.HashMap();
        * params.put("in",stringBuffer.toString());
        * com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider scfp =
        * sling.getService(com.adobe.livecycle.dsc.clientsdk.
        * ServiceClientFactoryProvider.class);
        * com.adobe.idp.dsc.clientsdk.ServiceClientFactory serviceClientFactory =
        * scfp.getDefaultServiceClientFactory(); com.adobe.idp.dsc.InvocationRequest ir
        * = serviceClientFactory.createInvocationRequest("Test1/NewProcess1", "invoke",
        * params, true);
        * ir.setProperty(com.adobe.livecycle.dsc.clientsdk.InvocationProperties.
        * INVOKER_TYPE,com.adobe.livecycle.dsc.clientsdk.InvocationProperties.
        * INVOKER_TYPE_SYSTEM); com.adobe.idp.dsc.InvocationResponse response1 =
        * serviceClientFactory.getServiceClient().invoke(ir);
        * System.out.println("The response is "+response1.getInvocationId());
        */

Konfigurieren der Sende-URL des HTML5-Formulars

submit-url

  • Tippen Sie auf die xdp und klicken Sie auf Properties->Advanced
  • Kopieren Sie http://localhost:4502/content/AemFormsSamples/handlehml5formsubmission.html und fügen Sie es in das Textfeld URL senden ein.
  • Klicken Sie auf die Schaltfläche SaveAndClose.

Eintrag in den Ausschlusspfaden hinzufügen

  • Navigieren Sie zu configMgr.
  • Suchen Sie nach Adobe Granite CSRF Filter
  • Fügen Sie den folgenden Eintrag im Abschnitt Ausgeschlossene Pfade hinzu
  • /content/AEMFormsSamples/handlehml5formsubmission
  • Speichern Sie Ihre Änderungen

Testen des Formulars

  • Tippen Sie auf die xdp-Vorlage.
  • Klicken Sie auf Vorschau->Vorschau als HTML anzeigen
  • Geben Sie Daten in das Formular ein und klicken Sie auf "Senden"
  • Sie sollten die gesendeten Daten sehen, die in die stdout.log-Datei Ihres Servers geschrieben wurden.

Zusätzliche Lektion

Dieser Artikel zum Generieren von PDF-Dateien aus der Übermittlung von HTML5-Formularen wird ebenfalls empfohlen.

Auf dieser Seite