Gestire l’invio di moduli HTML5

I moduli HTML5 possono essere inviati al servlet ospitato in AEM. I dati inviati sono accessibili nel servlet come flusso di input. Per inviare il modulo HTML5 è necessario aggiungere il pulsante "Invia per HTTP" al modello di modulo utilizzando AEM Forms Designer

Creare il gestore di invio

È possibile creare un semplice servlet per gestire l’invio del modulo HTML5. I dati inviati possono quindi essere estratti utilizzando il seguente codice. Questo servlet è disponibile come parte di questa esercitazione. Installa il servlet utilizzando package manager

Il codice della riga 9 può essere utilizzato per richiamare il processo J2EE. Assicurati di aver configurato la configurazione Adobe LiveCycle Client SDK se intendi usare il codice per richiamare il processo J2EE.

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());
        */

Configurare l’URL di invio del modulo HTML5

submit-url

  • Tocca l’xdp e fai clic su Proprietà->Avanzate
  • copia http://localhost:4502/content/AemFormsSamples/handlehml5formsubmission.html e incolla questo nel campo di testo Invia URL
  • Fare clic sul pulsante SaveAndClose .

Aggiungi una voce nei percorsi di esclusione

  • Passa a configMgr.
  • Cerca Filtro CSRF Granite Adobe
  • Aggiungi la seguente voce nella sezione Percorsi esclusi
  • /content/AemFormsSamples/handlehml5formsubmit
  • Salva le modifiche

Verificare il modulo

  • Tocca il modello xdp.
  • Fare clic su Anteprima->Anteprima come HTML
  • Immettere alcuni dati nel modulo e fare clic su Invia
  • Dovresti vedere i dati inviati scritti nel file stdout.log del tuo server

Lettura aggiuntiva

È inoltre consigliato questo articolo sulla generazione di PDF dall’invio di moduli HTML5.

In questa pagina