處理HTML5表單提交
HTML5表單可提交至AEM中託管的servlet。 提交資料可在servlet中作為輸入資料流存取。 若要提交HTML5表單,您必須使用AEM Forms Designer在表單範本上新增「HTTP提交按鈕」
建立您的提交處理常式
可以建立簡單的servlet來處理HTML5表單提交。 然後可以使用以下程式碼擷取提交的資料。 此servlet已在本教學課程中提供給您使用。 請使用封裝管理員安裝servlet
第9行的程式碼可用來叫用J2EE程式。 如果您打算使用程式碼來叫用J2EE處理序,請確定您已設定AdobeLiveCycle使用者端SDK組態。
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());
*/
設定HTML5表單的提交URL
- 點選xdp並按一下 內容->進階
- 複製http://localhost:4502/content/AemFormsSamples/handlehml5formsubmission.html ,並在「提交URL」文字欄位中貼上
- 按一下 儲存並關閉 按鈕。
在排除路徑中新增專案
- 瀏覽至configMgr。
- 搜尋 AdobeGranite CSRF篩選器
- 在「排除的路徑」區段中新增下列專案
- /content/AemFormsSamples/handlehml5formsubmission
- 儲存您的變更
測試表單
- 點選xdp範本。
- 按一下 預覽->預覽為HTML
- 在表單中輸入一些資料,然後按一下提交
- 您應該會看到提交的資料已寫入伺服器的stdout.log檔案
其他閱讀
也建議使用此article,瞭解如何從HTML5表單提交產生PDF。
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e