使用AEM Forms以HTML格式轉譯的XDP範本稱為「HTML5」或「行動Forms」。 常見的使用案例是在轉譯表單時預先填入這些表單。
有2種方式可在將資料轉譯為HTML時,將資料與xdp範本合併。
dataRef:您可以在URL中使用dataRef參數。 此參數指定與模板合併的資料檔案的絕對路徑。 此參數可以是XML格式傳回資料之其餘服務的URL。
資料:此參數指定與範本合併的UTF-8編碼資料位元組。 如果指定了此參數,HTML5表單將忽略dataRef參數。 建議您使用資料方法,作為最佳實務。
建議的方法是在請求中設定資料屬性,並預先填入您要填入的表格資料。
slingRequest.setAttribute("data", content);
在此範例中,我們會使用內容設定資料屬性。 內容代表您要預先填入表單的資料。 通常,您會對內部服務發出REST呼叫來擷取「內容」。
若要達成此使用案例,您必須建立自訂設定檔。 有關建立自訂設定檔的詳細資訊,請詳見 AEM Forms檔案此處.
建立自訂設定檔後,您將建立JSP檔案,此檔案會呼叫後端系統以擷取資料。 擷取資料後,您就會使用slingRequest.setAttribute("data", content);預先填入表單
轉譯XDP時,您也可以將某些參數傳遞至xdp,並根據參數的值,從後端系統擷取資料。
您編寫的JSP將可通過request.getParameter("name")訪問name參數。 接著,您可以將此參數的值傳遞至後端程式,以擷取所需資料。
若要讓此功能在您的系統上正常運作,請遵循下列步驟:
使用套件管理器將資產下載並匯入AEM
套件將安裝下列
如果您想透過呼叫workbench程式來填入表單,您可能想在/apps/AEMFormsDemoListings/customprofiles/PrepopulateForm/html.jsp中加入callWorkbenchProcess.jsp,而非setdata.jsp