ドキュメントAEMAEM チュートリアルAEM Forms のチュートリアル

data 属性を使用した HTML5 フォームへの事前入力

最終更新日: 2025年4月2日
  • 適用対象:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • トピック:
  • アダプティブフォーム

作成対象:

  • 経験者
  • 開発者

AEM Forms を使用して HTML 形式でレンダリングされた XDP テンプレートは、HTML5 フォームまたはモバイルフォームと呼ばれます。一般的なユースケースは、レンダリングの際にこれらのフォームに事前入力することです。

HTML としてレンダリングするときにデータを XDP テンプレートと結合する方法は 2 とおりあります。

dataRef:URL で dataRef パラメータを使用できます。このパラメーターは、テンプレートと結合されるデータファイルの絶対パスを指定します。このパラメーターには、XML 形式データを返す REST サービスへの URL を使用できます。

data:このパラメーターはテンプレートと結合される、UTF-8 でエンコードされたデータバイトを指定します。このパラメーターが指定されている場合、HTML5 フォームでは dataRef パラメーターが無視されます。ベストプラクティスとして、データアプローチを使用することをお勧めします。

お勧めのアプローチは、フォームに事前入力するデータを使用してリクエストの data 属性を設定することです。

slingRequest.setAttribute("data", content);

この例では、コンテンツを data 属性に設定しています。コンテンツは、フォームに事前入力するデータを表します。通常は、内部サービスに対して REST 呼び出しを実行して、「コンテンツ」を取得します。

このユースケースを達成するには、カスタムプロファイルを作成する必要があります。カスタムプロファイルの作成について詳しくは、こちらの AEM Forms ドキュメントを参照してください。

カスタムプロファイルを作成したら、バックエンドシステムに対して呼び出しを実行して、データを取得する JSP ファイルを作成します。データを取得したら、slingRequest.setAttribute("data", content); を使用してフォームに事前入力します。

XDP がレンダリングされる際に、一部のパラメーターを XDP に渡すこともでき、パラメーターの値に基づいて、バックエンドシステムからデータを取得できます。

例えば、この URL には name パラメーターが含まれています。

書き込んだ JSP で、request.getParameter("name") を使用して name パラメーターにアクセスできます。その後、このパラメーターの値をバックエンドプロセスに渡して、必要なデータを取得できます。
この機能をシステムで動作させるには、次の手順に従ってください。

  • パッケージマネージャーを使用して、アセットをダウンロードし AEM に読み込みます。
    パッケージでは以下をインストールします。

    • カスタムプロファイル
    • サンプル XDP
    • フォームに入力するデータを返すサンプル POST エンドポイント
メモ
ワークベンチプロセスを呼び出してフォームに入力する場合は、setdata.jsp ではなく callWorkbenchProcess.jsp を /apps/AEMFormsDemoListings/customprofiles/PrepopulateForm/html.jsp にインクルードすることができます。
  • お気に入りのブラウザーでこの URL を参照します。フォームに name パラメーターの値が事前入力されているはずです。
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e