文档AEMAEM 教程AEM Forms 教程

从Azure存储获取数据

最近更新: 2025年5月5日
  • 适用对象:
  • Experience Manager 6.5
  • 主题:
  • 自适应表单

创建对象:

  • 初学者
  • 开发人员

本文说明如何使用存储在Azure存储中的数据填充自适应表单。
假设您已将自适应表单数据存储在Azure存储中,现在希望使用该数据预填充自适应表单。

注意
本文中的代码不适用于基于核心组件的自适应表单。此处提供了基于核心组件的自适应表单的等效文章

创建GET请求

下一步是使用blobID编写代码以从Azure存储中提取数据。 编写了以下代码以提取数据。 URL是使用OSGi配置中的sasToken和storageURI值以及传递给getBlobData函数的blobID构建的

 @Override
public String getBlobData(String blobID) {
    String sasToken = azurePortalConfigurationService.getSASToken();
    String storageURI = azurePortalConfigurationService.getStorageURI();
    log.debug("The SAS Token is " + sasToken);
    log.debug("The Storage URL is " + storageURI);
    String httpGetURL = storageURI + blobID;
    httpGetURL = httpGetURL + sasToken;
    HttpGet httpGet = new HttpGet(httpGetURL);

    org.apache.http.impl.client.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    CloseableHttpResponse httpResponse = null;
    try {
        httpResponse = httpClient.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();
        String blobData = EntityUtils.toString(httpEntity);
        log.debug("The blob data I got was " + blobData);
        return blobData;

    } catch (ClientProtocolException e) {

        log.debug("Got Client Protocol Exception " + e.getMessage());
    } catch (IOException e) {

        log.debug("Got IOEXception " + e.getMessage());
    }

    return null;
}

在URL中使用guid参数呈现自适应表单时,与模板关联的自定义页面组件会获取并使用Azure存储中的数据填充自适应表单。
以下是与该模板关联的页面组件jsp中的代码

com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage azureStorage = sling.getService(com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage.class);


String guid = request.getParameter("guid");

if(guid!=null&&!guid.isEmpty())
{
    String dataXml = azureStorage.getBlobData(guid);
    slingRequest.setAttribute("data",dataXml);

}

测试解决方案

  • 部署自定义OSGi捆绑包

  • 导入自定义自适应表单模板以及与模板关联的页面组件

  • 导入自适应表单示例

  • 使用OSGi配置控制台在Azure门户配置中指定适当的值。

  • 预览并提交银行帐户表单

  • 验证数据是否存储在您选择的Azure存储容器中。 复制Blob ID。

  • 预览BankAccount表单,并将Blob ID指定为URL中的guid参数,该表单将使用Azure存储中的数据预填充

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e