2

我想知道是否有一种简单的方法可以通过 AEM 中的 sling 内容导出器的结果来获取字符串。在我当前的用例中,我需要组件的 htl 文件中组件的 .model.json 输出的内容,并且发送额外的请求显然不是一个好主意。关于如何获取数据的任何提示?

4

1 回答 1

1

经过一番阅读和实验,我找到了一种方法:

将依赖项添加到 pom 中的以下包:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.5</version>
    </dependency>

然后在您的模型中创建一个执行序列化的方法:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public String getJson() {
    ObjectMapper objectMapper = new ObjectMapper();
    String tStr = "";
    try {
        tStr = objectMapper.writeValueAsString(this);
        logger.error(tStr);
    }
    catch (JsonProcessingException ex) {
        logger.error("Cannot do it: {}", ex.getMessage());
    }
    return tStr;
}

现在,您可以从 HTL 脚本或任何其他有权访问模型的代码片段中调用此方法。

于 2019-08-22T07:04:44.350 回答