AEM:如何使用资源类型获取已注册吊索模型的列表
在创建吊索模型时,我们可以通过资源类型注册它。有没有办法通过在AEM中提供资源类型来获得sling模型类名。例如:如果我有一个资源类型/mysite/component/breadcrumb,那么sling模型是BreadCrumbModel.java。 如果我传递resourceType值并获取类referenece,是否存在OOTB服务AEM:如何使用资源类型获取已注册吊索模型的列表,aem,sling,sling-models,Aem,Sling,Sling Models,在创建吊索模型时,我们可以通过资源类型注册它。有没有办法通过在AEM中提供资源类型来获得sling模型类名。例如:如果我有一个资源类型/mysite/component/breadcrumb,那么sling模型是BreadCrumbModel.java。 如果我传递resourceType值并获取类referenece,是否存在OOTB服务 通过提供的资源或该资源的SlingHttpServletRequest向您表示感谢 modelFactory.getModelFromResource(re
通过提供的
资源
或该资源的SlingHttpServletRequest
向您表示感谢
modelFactory.getModelFromResource(resource)
modelFactory.getModelFromRequest(request)
用法示例:
如果类中注入了SlingScriptHelper
-
Resource resource = resourceResolver.getResource("/mysite/component/breadcrumb");
slingScriptHelper.getService(ModelFactory.class).getModelFromResource(resource);
或者,如果您已经注入了
ModelFactory
并可用,请直接使用它。是,从提供的资源或该资源的SlingHttpServletRequest
使用
modelFactory.getModelFromResource(resource)
modelFactory.getModelFromRequest(request)
用法示例:
如果类中注入了SlingScriptHelper
-
Resource resource = resourceResolver.getResource("/mysite/component/breadcrumb");
slingScriptHelper.getService(ModelFactory.class).getModelFromResource(resource);
或者,如果您已经注入了ModelFactory
并可用,请直接使用它。org.apache.sling.models.factory.ModelFactory#createModel(@Nonnull Object adaptive,@Nonnull Class type)
org.apache.sling.models.factory.modelbactory#createModel(@Nonnull Object adaptive,@Nonnull Class type)
谢谢,它起作用了。但一个问题是,一些模型使用资源作为适配器,而有些模型使用请求。在获取资源之前,是否有任何方法可以检查此模型是属于资源还是属于请求?很高兴它能够工作。为了确定模型是否使用请求或资源进行了调整,exportModelForRequest
和isModelAvailableForRequest
来自ModelFactory
的方法看起来很有希望。虽然我还没有测试过,但您可能想尝试一下这些方法。好奇的是,您是否能够让它工作,检查模型是否使用req或资源进行了调整?哪种方法对你有帮助是的通过这个我可以检查。。。谢谢你,伙计。不幸的是,它没有解决我的问题,因为我的请求是通过一个servlet发出的,因此在该请求中,它没有通过请求调整模型注册。因为此请求资源与实际资源不同。无论如何,感谢您的帮助:)@SubSulisModelAvailableForRequest
将检查可用于已传递请求中嵌入的资源的模型。因此,我们无法检查组件的吊索模型是否可以根据请求进行调整,除非我们有对特定资源的请求。另外,在最新的sling models API中,我们在ModelFactory
中有一个名为getModelFromWrappedRequest
的方法,它用传递的资源包装请求。谢谢,它可以工作。但一个问题是,一些模型使用资源作为适配器,而有些模型使用请求。在获取资源之前,是否有任何方法可以检查此模型是属于资源还是属于请求?很高兴它能够工作。为了确定模型是否使用请求或资源进行了调整,exportModelForRequest
和isModelAvailableForRequest
来自ModelFactory
的方法看起来很有希望。虽然我还没有测试过,但您可能想尝试一下这些方法。好奇的是,您是否能够让它工作,检查模型是否使用req或资源进行了调整?哪种方法对你有帮助是的通过这个我可以检查。。。谢谢你,伙计。不幸的是,它没有解决我的问题,因为我的请求是通过一个servlet发出的,因此在该请求中,它没有通过请求调整模型注册。因为此请求资源与实际资源不同。无论如何,感谢您的帮助:)@SubSulisModelAvailableForRequest
将检查可用于已传递请求中嵌入的资源的模型。因此,我们无法检查组件的吊索模型是否可以根据请求进行调整,除非我们有对特定资源的请求。另外,在最新的sling models API中,我们在ModelFactory
中有一个名为getModelFromWrappedRequest
的方法,它用传递的资源包装请求。