將Forms轉譯為HTML rendering-forms-as-html

本檔案中的範例和範例僅適用於JEE環境上的AEM Forms。

Forms服務會根據網頁瀏覽器的HTTP要求,將表單轉譯為HTML。 將表單轉譯為HTML的好處是,使用者端網頁瀏覽器所在的電腦不需要Adobe Reader、Acrobat或Flash Player (適用於表單指南(已棄用))。

若要將表單轉譯為HTML,表單設計必須儲存為XDP檔案。 儲存為PDF檔案的表單設計無法呈現為HTML。 在Designer中開發將轉譯為HTML的表單設計時,請考慮下列條件:

  • 請勿使用物件的邊框屬性在表單上繪製線條、方框或格點。 有些瀏覽器可能不會將邊框依照在預覽中顯示的樣式完全對齊。 物件可能會呈現圖層狀,或可能將其他物件推離其預期位置。
  • 您可以使用直線、矩形和圓來定義背景。
  • Draw文字稍微大於容納文字所需的大小。 有些網頁瀏覽器無法清楚顯示文字。
NOTE
當使用FormServiceClient物件的(Deprecated) renderHTMLFormrenderHTMLForm2方法呈現包含TIFF影像的表單時,TIFF影像不會顯示在Internet Explorer或Mozilla Firefox瀏覽器中顯示的已呈現HTML表單中。 這些瀏覽器不提供TIFF影像的原生支援。

HTML頁面 html-pages

當表單設計呈現為HTML表單時,每個第二層子表單都會呈現為HTML頁面(面板)。 您可以在Designer中檢視子表單的階層。 屬於根子表單的子表單(根子表單的預設名稱為form1)是面板子表單。 下列範例顯示表單設計的子表單。

     form1
         Master Pages
         PanelSubform1
             NestedDynamicSubform
                 TextEdit1
         PanelSubform2
             TextEdit1
         PanelSubform3
             TextEdit1
         PanelSubform4
             TextEdit1

當表單設計呈現為HTML表單時,面板不受任何特定頁面大小的限制。 如果您有動態子表單,應該將它們巢狀內嵌在面板子表單中。 動態子表單可擴充至無限數量的HTML頁面。

當表單轉譯為HTML表單時,頁面大小(對轉譯為PDF的表單進行分頁所必需)沒有任何意義。 因為具有可流動配置的表單可展開至無限數量的HTML頁面,請務必避免主版頁面上的頁尾。 主版頁面內容區域下方的頁尾可能會覆寫流經頁面邊界的HTML內容。

您必須使用xfa.host.pageUpxfa.host.pageDown方法,明確地在面板間移動。 若要變更頁面,請將表單傳送至Forms服務,並讓Forms服務將表單轉譯回使用者端裝置(通常為網頁瀏覽器)。

NOTE
將表單傳送至Forms服務,然後讓Forms服務將表單轉譯回使用者端裝置的程式,稱為將資料四捨五入至伺服器。
NOTE
如果您想要自訂HTML表單上「HTML數位簽名」按鈕的外觀,您必須在fscdigsig.css檔案(在adobe-forms-ds.ear > adobe-forms-ds.war檔案中)中變更下列屬性:

.fsc-ds-ssb:此樣式表適用於有空白符號欄位的情況。

.fsc-ds-ssv:此樣式表適用於有有效符號欄位的情況。

.fsc-ds-ssc:此樣式表適用於有有效符號欄位但資料已變更的情況。

.fsc-ds-ssi:此樣式表適用於有無效符號欄位的情況。

.fsc-ds-popup-bg:未使用此樣式表屬性。

fsc-ds-popup-btn:未使用此樣式表屬性。

執行指令碼 running-scripts

表單作者會指定指令碼是在伺服器上還是在使用者端上執行。 Forms服務會建立分散式的事件處理環境,以執行可使用runAt屬性在使用者端與伺服器之間分配的表單情報。 如需此屬性或在表單設計內建立指令碼的相關資訊,請參閱Forms Designer

Forms服務可在表單轉譯時執行指令碼。 因此,您可以連線至資料庫或使用者端可能無法使用的Web服務,預先填入含有資料的表單。 您也可以將按鈕的Click事件設定為在伺服器上執行,讓使用者端將資料往返至伺服器。 這可讓使用者端在使用者與表單互動時,執行可能需要伺服器資源的指令碼,例如企業資料庫。 對於HTML表單,formcalc指令碼只能在伺服器上執行。 因此,您必須將這些指令碼標示為在serverboth執行。

您可以呼叫xfa.host.pageUpxfa.host.pageDown方法,設計可在頁面(面板)之間移動的表單。 此指令碼放置在按鈕的Click事件中,runAt屬性設定為Both。 您選擇「Both」的原因是,Adobe Reader或Acrobat (針對呈現為PDF的表單)不需要移至伺服器即可變更頁面,而HTML表單可以透過將資料舍入至伺服器來變更頁面。 也就是說,表單會傳送至Forms服務,而表單會呈現為HTML並顯示新頁面。

建議您不要將指令碼變數和表單欄位命名為相同的名稱,例如專案。 有些網頁瀏覽器(例如Internet Explorer)可能無法初始化與表單欄位同名的變數,進而造成指令碼錯誤。 建議您將表單欄位和指令碼變數命名為不同名稱。

在轉譯同時包含頁面導覽功能和表單指令碼的HTML表單時(例如,假設指令碼在每次轉譯表單時都會從資料庫擷取欄位資料),請確保表單指令碼採用form:calculate event格式,而不是form:readyevent格式。

form:ready事件形式的表單指令碼在表單的初始轉譯期間只會執行一次,而不會在後續的頁面擷取中執行。 相反地,form:calculate事件會針對每個轉譯了表單的頁面導覽執行。

NOTE
在多頁表單上,如果您移至其他頁面,JavaScript對頁面所做的變更不會保留。

您可以在提交表單前叫用自訂指令碼。 此功能適用於所有可用瀏覽器。 但是,只有當使用者轉譯其Output Type屬性設定為Form Body的HTML表單時,才能使用它。 當Output TypeFull HTML時無法運作。 如需設定此功能的步驟,請參閱管理說明中的設定表單。

首先定義在提交表單之前呼叫的回呼函式,其中函式名稱為_user_onsubmit。 我們假設函式不會擲回任何例外狀況,或如果擲回了,則會忽略例外狀況。 建議將JavaScript函式放在html的head區段中;不過,您可以在包含xfasubset.js的指令碼標籤結尾之前的任何位置宣告它。

表單伺服器轉譯含有下拉式清單的XDP時,除了建立下拉式清單外,還會建立兩個隱藏的文字欄位。 這些文字欄位儲存下拉式清單的資料(其中一個儲存選項的顯示名稱,另一個儲存選項的值)。 因此,每次使用者提交表單時,都會提交下拉式清單的整個資料。 假設您不想每次都提交那麼多的資料,您可以撰寫自訂指令碼來停用它。 例如:下拉式清單的名稱為drpOrderedByStateProv,且已包裝在子表單標題下。 HTML輸入專案的名稱將為header[0].drpOrderedByStateProv[0]。 儲存及提交下拉式清單資料的隱藏欄位名稱如下: header[0].drpOrderedByStateProv_DISPLAYITEMS_[0] header[0].drpOrderedByStateProv_VALUEITEMS_[0]

如果您不想張貼資料,可以下列方式停用這些輸入元素。var __CUSTOM_SCRIPTS_VERSION = 1; //enabling the feature function _user_onsubmit() { var elems = document.getElementsByName("header[0].drpOrderedByStateProv_DISPLAYITEMS_[0]"); elems[0].disabled = true; elems = document.getElementsByName("header[0].drpOrderedByStateProv_VALUEITEMS_[0]"); elems[0].disabled = true; }

header[0].drpOrderedByStateProv_DISPLAYITEMS_[0] header[0].drpOrderedByStateProv_VALUEITEMS_[0]
var __CUSTOM_SCRIPTS_VERSION = 1; //enabling the feature
    function _user_onsubmit() {
    var elems = document.getElementsByName("header[0].drpOrderedByStateProv_DISPLAYITEMS_[0]");
    elems[0].disabled = true;
    elems = document.getElementsByName("header[0].drpOrderedByStateProv_VALUEITEMS_[0]");
    elems[0].disabled = true;
    }

XFA子集 xfa-subsets

建立要呈現為HTML的表單設計時,您必須將指令碼限製為JavaScript語言中指令碼的XFA子集。

在使用者端上執行或在使用者端和伺服器上執行的指令碼必須寫入XFA子集中。 在伺服器上執行的指令碼可以使用完整的XFA指令碼模型,也可以使用FormCalc。 如需使用JavaScript的相關資訊,請參閱Forms Designer

在使用者端上執行指令碼時,只有目前顯示的面板可以使用指令碼;例如,當面板B顯示時,您無法對面板A中的欄位執行指令碼。 在伺服器上執行指令碼時,可以存取所有面板。

在使用者端執行的指令碼中使用指令碼物件模型(SOM)運算式時,請務必小心。 在使用者端執行的指令碼僅支援SOM運算式的簡化子集。

事件計時 event-timing

XFA子集會定義對應至HTML事件的XFA事件。 計算及驗證事件的時間在行為上稍有不同。 在網頁瀏覽器中,當您退出欄位時會執行完整計算事件。 當您變更欄位值時,計算事件不會自動執行。 您可以呼叫xfa.form.execCalculate方法來強制計算事件。

在網頁瀏覽器中,驗證事件僅在退出欄位或提交表單時執行。 您可以使用xfa.form.execValidate方法強制驗證事件。

在網頁瀏覽器中顯示的Forms (與Adobe Reader或Acrobat不同)符合XFA null測試(錯誤或警告)的強制欄位。

  • 如果Null測試產生錯誤,而您結束欄位卻未指定值,則會顯示訊息方塊,而且您會在按一下「確定」後重新定位至欄位。
  • 如果Null測試產生警告,而您結束欄位時未指定值,系統會提示您按一下「確定」或「取消」,讓您選擇繼續但不指定值或返回欄位以輸入值。

如需Null測試的詳細資訊,請參閱Forms Designer

表單按鈕 form-buttons

按一下提交按鈕會將表單資料傳送至Forms服務,並代表表單處理的結尾。 可以將preSubmit事件設定為在使用者端或伺服器上執行。 如果preSubmit事件設定為在使用者端上執行,則會在表單提交之前執行。 否則,在提交表單期間,preSubmit事件會在伺服器上執行。 如需preSubmit事件的詳細資訊,請參閱Forms Designer

如果按鈕沒有關聯的使用者端指令碼,則會將資料提交至伺服器,在伺服器上執行計算,並重新產生HTML表單。 如果按鈕包含使用者端指令碼,資料不會傳送至伺服器,而使用者端指令碼會在網頁瀏覽器中執行。

HTML4.0網頁瀏覽器 html-4-0-web-browser

僅支援HTML4.0的網頁瀏覽器無法支援XFA子集使用者端指令碼模型。 建立可在HTML4.0和MSDHTML或CSS2HTML中運作的表單設計時,標籤為在使用者端執行的指令碼實際上將會在伺服器上執行。 例如,假設使用者按一下位於HTML4.0網頁瀏覽器中所顯示表單上的按鈕。 在此情況下,表單資料會傳送至執行使用者端指令碼的伺服器。

建議您將表單邏輯放置在計算事件中,這些計算事件會在HTML為4.0的伺服器上執行,以及在MSDHTML或CSS2HTML的使用者端上執行。

維護簡報變更 maintaining-presentation-changes

當您在HTML頁面(面板)之間移動時,只會維持資料的狀態。 不會維護背景顏色或強制欄位設定等設定(如果與初始設定不同)。 若要維持呈現狀態,您必須建立代表欄位呈現狀態的欄位(通常是隱藏的)。 如果您將指令碼新增到欄位的Calculate事件,該事件會根據隱藏欄位值變更簡報,則當您在HTML頁面(面板)之間來回移動時,可以保留簡報狀態。

下列指令碼會根據hiddenField的值維護欄位的fillColor。 假設此指令碼位於欄位的Calculate事件中。

     If (hiddenField.rawValue == 1)
         this.fillColor = "255,0,0"
     else
         this.fillColor = "0,255,0"
NOTE
巢狀內嵌於表格儲存格時,靜態物件不會顯示在演算後的HTML表單中。 例如,巢狀在表格儲存格內的圓形和矩形不會顯示在轉譯HTML表單中。 不過,當這些相同的靜態物件位於表格外部時,會正確顯示。

數位簽署HTML表單 digitally-signing-html-forms

如果表單呈現為下列HTML轉換之一,則您無法簽署包含數位簽名欄位的HTML表單:

  • AHTML
  • HTML4
  • 靜態HTML
  • NoScriptXHTML

如需以數位方式簽署檔案的詳細資訊,請參閱以數位方式簽署和認證檔案

呈現符合協助工具指南的XHTML表單 rendering-an-accessibility-guidelines-compliant-xhtml-form

您可以呈現符合協助工具准則的完整HTML表單。 也就是說,表單會在完整HTML標籤中呈現,而不是在body標籤中呈現HTML表單(不是完整的HTML頁面)。

驗證表單資料 validating-form-data

將表單轉譯為HTML表單時,建議您限制在表單欄位中使用驗證規則。 HTML表單可能不支援某些驗證規則。 例如,當將MM-DD-YYYY的驗證模式套用至表單設計中呈現為HTML表單的Date/Time欄位時,即使正確輸入日期,該模式也無法正常運作。 不過,此驗證模式適用於轉譯為PDF的表單。

NOTE
如需Forms服務的詳細資訊,請參閱AEM Forms服務參考

步驟摘要 summary-of-steps

若要呈現HTML表單,請執行下列步驟:

  1. 包含專案檔案。
  2. 建立Forms使用者端API物件。
  3. 設定HTML執行階段選項。
  4. 呈現HTML表單。
  5. 將表單資料流寫入使用者端網頁瀏覽器。

包含專案檔

將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。

建立Forms使用者端API物件

您必須先建立表單資料整合服務使用者端,才能以程式設計方式將資料匯入PDFformClient API。 建立服務使用者端時,您可以定義呼叫服務所需的連線設定。

設定HTML執行階段選項

呈現HTML表單時,您可以設定HTML執行階段選項。 例如,您可以將工具列新增至HTML表單,讓使用者能夠選取位於使用者端電腦上的檔案附件,或擷取以HTML表單呈現的檔案附件。 HTML工具列預設為停用。 若要將工具列新增至HTML表單,您必須以程式設計方式設定執行階段選項。 依預設,HTML工具列包含下列按鈕:

  • Home:提供應用程式Web根目錄的連結。
  • Upload:提供使用者介面以選取要附加至目前表單的檔案。
  • Download:提供顯示附加檔案的使用者介面。

當HTML表單上出現HTML工具列時,使用者可以選擇最多10個要與表單資料一起提交的檔案。 提交檔案後,Forms服務即可擷取檔案。

將表單轉譯為HTML時,您可以指定使用者代理程式值。 使用者代理值可提供瀏覽器和系統資訊。 這是選用值,您可以傳遞空字串值。 使用Java API快速入門呈現HTML表單會顯示如何取得使用者代理程式值,並將其用來將表單呈現為HTML。

若要指定張貼表單資料的HTTP URL,可使用Forms服務使用者端API設定目標URL,或在XDP表單設計內含的提交按鈕中指定。 如果在表單設計中指定了目標URL,則請勿使用Forms服務使用者端API來設定值。

NOTE
使用工具列轉譯HTML表單是選用專案。
NOTE
如果您轉譯AHTML表單,建議您不要將工具列新增至表單。

轉譯HTML表單

若要呈現HTML表單,請指定在Designer中建立並儲存為XDP檔案的表單設計。 選取HTML轉換型別。 例如,您可以指定轉譯Internet Explorer 5.0或更新版本動態HTML的HTML轉換型別。

呈現HTML表單也需要值,例如呈現其他表單型別所需的URI值。

將表單資料流寫入使用者端網頁瀏覽器

Forms服務轉譯HTML表單時,會傳回您必須寫入使用者端網頁瀏覽器的表單資料流。 寫入使用者端網頁瀏覽器時,使用者可看到HTML表單。

另請參閱

使用Java API將表單轉譯為HTML

使用網站服務API將表單轉譯為HTML

包含AEM Forms Java程式庫檔案

設定連線屬性

Forms服務API快速入門

呈現互動式PDF forms

使用自訂工具列呈現HTMLForms

建立轉譯Forms的網頁應用程式

使用Java API將表單轉譯為HTML render-a-form-as-html-using-the-java-api

使用Forms API (Java)轉譯HTML表單:

  1. 包含專案檔案

    在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-forms-client.jar。

  2. 建立Forms使用者端API物件

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞ServiceClientFactory物件來建立FormsServiceClient物件。
  3. 設定HTML執行階段選項

    • 使用物件的建構函式建立HTMLRenderSpec物件。
    • 若要使用工具列轉譯HTML表單,請叫用HTMLRenderSpec物件的setHTMLToolbar方法,並傳遞HTMLToolbar列舉值。 例如,若要顯示垂直HTML工具列,請傳遞HTMLToolbar.Vertical
    • 若要設定HTML表單的地區設定值,請叫用HTMLRenderSpec物件的setLocale方法,並傳遞指定地區設定值的字串值。 (此為選用設定。)
    • 若要在完整HTML標籤中轉譯HTML表單,請叫用HTMLRenderSpec物件的setOutputType方法並傳遞OutputType.FullHTMLTags。 (此為選用設定。)
    note note
    NOTE
    StandAlone選項為trueApplicationWebRoot參考到裝載Forms的J2EE應用程式伺服器以外的伺服器時,AEM Forms無法成功在HTML中轉譯(ApplicationWebRoot值是使用傳遞至FormsServiceClient物件的(Deprecated) renderHTMLForm方法的URLSpec物件指定的)。 當ApplicationWebRoot是另一個來自主控AEM Forms的伺服器時,管理主控台中的Web根URI值需要設定為表單的Web應用程式URI值。 若要這麼做,請登入管理主控台,按一下「服務> Forms」,然後將Web根URI設為https://server-name:port/FormServer。 然後,儲存您的設定。
  4. 呈現HTML表單

    叫用FormsServiceClient物件的(Deprecated) renderHTMLForm方法,並傳遞下列值:

    • 字串值,指定表單設計名稱,包括副檔名。 如果您參照的表單設計屬於Forms應用程式的一部分,請確定您指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 指定HTML喜好設定型別的TransformTo列舉值。 例如,若要呈現與Internet Explorer 5.0或更新版本的動態HTML相容的HTML表單,請指定TransformTo.MSDHTML
    • 包含要與表單合併之資料的com.adobe.idp.Document物件。 如果您不想合併資料,請傳遞空的com.adobe.idp.Document物件。
    • 儲存HTML執行階段選項的HTMLRenderSpec物件。
    • 字串值,指定HTTP_USER_AGENT標頭值;例如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    • 儲存轉譯HTML表單所需URI值的URLSpec物件。
    • 儲存檔案附件的java.util.HashMap物件。 這是選用引數,如果您不想將檔案附加至表單,可以指定null

    (Deprecated) renderHTMLForm方法傳回FormsResult物件,其中包含可寫入使用者端網頁瀏覽器的表單資料流。

  5. 將表單資料流寫入使用者端網頁瀏覽器

    • 呼叫FormsResult物件的getOutputContent方法,以建立com.adobe.idp.Document物件。
    • 透過叫用物件的getContentType方法,取得com.adobe.idp.Document物件的內容型別。
    • 透過叫用其setContentType方法並傳遞com.adobe.idp.Document物件的內容型別來設定javax.servlet.http.HttpServletResponse物件的內容型別。
    • 呼叫javax.servlet.http.HttpServletResponse物件的getOutputStream方法,建立用來將表單資料流寫入使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 呼叫com.adobe.idp.Document物件的getInputStream方法,以建立java.io.InputStream物件。
    • 呼叫InputStream物件的read方法,並將位元組陣列作為引數傳遞,以建立位元組陣列並以表單資料串流填入。
    • 叫用javax.servlet.ServletOutputStream物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

將Forms轉譯為HTML

快速入門(SOAP模式):使用Java API轉譯HTML表單

包含AEM Forms Java程式庫檔案

設定連線屬性

使用網站服務API將表單轉譯為HTML render-a-form-as-html-using-the-web-service-api

使用Forms API (Web服務)轉譯HTML表單:

  1. 包含專案檔案

    • 建立使用Forms服務WSDL的Java Proxy類別。
    • 將Java Proxy類別納入您的類別路徑中。
  2. 建立Forms使用者端API物件

    建立FormsService物件並設定驗證值。

  3. 設定HTML執行階段選項

    • 使用物件的建構函式建立HTMLRenderSpec物件。
    • 若要使用工具列轉譯HTML表單,請叫用HTMLRenderSpec物件的setHTMLToolbar方法,並傳遞HTMLToolbar列舉值。 例如,若要顯示垂直HTML工具列,請傳遞HTMLToolbar.Vertical
    • 若要設定HTML表單的地區設定值,請叫用HTMLRenderSpec物件的setLocale方法,並傳遞指定地區設定值的字串值。 如需詳細資訊,請參閱AEM Forms API參考
    • 若要在完整HTML標籤中轉譯HTML表單,請叫用HTMLRenderSpec物件的setOutputType方法並傳遞OutputType.FullHTMLTags
    note note
    NOTE
    StandAlone選項為trueApplicationWebRoot參考到裝載Forms的J2EE應用程式伺服器以外的伺服器時,AEM Forms無法成功在HTML中轉譯(ApplicationWebRoot值是使用傳遞至FormsServiceClient物件的(Deprecated) renderHTMLForm方法的URLSpec物件指定的)。 當ApplicationWebRoot是另一個來自主控AEM Forms的伺服器時,管理主控台中的Web根URI值需要設定為表單的Web應用程式URI值。 若要這麼做,請登入管理主控台,按一下「服務> Forms」,然後將Web根URI設為https://server-name:port/FormServer。 然後,儲存您的設定。
  4. 呈現HTML表單

    叫用FormsService物件的(Deprecated) renderHTMLForm方法,並傳遞下列值:

    • 字串值,指定表單設計名稱,包括副檔名。 如果您參照的表單設計屬於Forms應用程式的一部分,請確定您指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 指定HTML喜好設定型別的TransformTo列舉值。 例如,若要呈現與Internet Explorer 5.0或更新版本的動態HTML相容的HTML表單,請指定TransformTo.MSDHTML
    • 包含要與表單合併之資料的BLOB物件。 如果您不想合併資料,請傳遞null。 (請參閱使用可流動配置預先填入Forms。)
    • 儲存HTML執行階段選項的HTMLRenderSpec物件。
    • 字串值,指定HTTP_USER_AGENT標頭值;例如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)。 如果您不想設定此值,可以傳遞空字串。
    • 儲存轉譯HTML表單所需URI值的URLSpec物件。 (請參閱指定URI值。)
    • 儲存檔案附件的java.util.HashMap物件。 這是選用引數,如果您不想將檔案附加至表單,可以指定null。 (請參閱將檔案附加至表單。)
    • 方法填入的空白com.adobe.idp.services.holders.BLOBHolder物件。 此引數值會儲存演算後的表單。
    • 方法填入的空白com.adobe.idp.services.holders.BLOBHolder物件。 此引數會儲存輸出XML資料。
    • 方法填入的空白javax.xml.rpc.holders.LongHolder物件。 此引數會儲存表單中的頁數。
    • 方法填入的空白javax.xml.rpc.holders.StringHolder物件。 此引數將會儲存地區設定值。
    • 方法填入的空白javax.xml.rpc.holders.StringHolder物件。 此引數將會儲存所使用的HTML演算值。
    • 包含此作業結果的空白com.adobe.idp.services.holders.FormsResultHolder物件。

    (Deprecated) renderHTMLForm方法會將必須寫入使用者端網頁瀏覽器的表單資料流,填入作為最後一個引數值傳遞的com.adobe.idp.services.holders.FormsResultHolder物件。

  5. 將表單資料流寫入使用者端網頁瀏覽器

    • 取得com.adobe.idp.services.holders.FormsResultHolder物件之value資料成員的值,以建立FormResult物件。
    • 呼叫FormsResult物件的getOutputContent方法,建立包含表單資料的BLOB物件。
    • 透過叫用物件的getContentType方法,取得BLOB物件的內容型別。
    • 透過叫用其setContentType方法並傳遞BLOB物件的內容型別來設定javax.servlet.http.HttpServletResponse物件的內容型別。
    • 呼叫javax.servlet.http.HttpServletResponse物件的getOutputStream方法,建立用來將表單資料流寫入使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 建立位元組陣列,並透過叫用BLOB物件的getBinaryData方法來填入該陣列。 此工作會將FormsResult物件的內容指派給位元組陣列。
    • 叫用javax.servlet.http.HttpServletResponse物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

將Forms轉譯為HTML

使用Base64編碼叫用AEM Forms

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2