data 属性を使用した HTML5 フォームへの事前入力
- 適用対象:
- 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 エンドポイント
- お気に入りのブラウザーでこの URL を参照します。フォームに name パラメーターの値が事前入力されているはずです。