Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

AEM 6.4 Model @Exporter for pages

Avatar

Level 2
Hello everyone,
im trying to export my model with @exporter.Somehow is not working and i guess it cold be because resourcetype.My model is for "pageanalytics" so the resourcetype should be something like:myapps/components/structure/pagebecause my model is called in head.html which is in page.If i remove the resorucetype the model is working but its not exported.if i put that path, its a null point and mypage.model.json is blank and not loadedWhat im doin wrong?
@Model(
        adaptables = SlingHttpServletRequest.class,
        adapters = ComponentExporter.class,
        defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL,
        resourceType = "myapp/components/structure/page")
@Exporter(
        name = ExporterConstants.SLING_MODEL_EXPORTER_NAME,
        extensions = ExporterConstants.SLING_MODEL_EXTENSION)
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

You need to do like

 

@Model(adaptables = SlingHttpServletRequest.class, adapters = {MyModel.class, ContainerExporter.class}, resourceType ="myapp/components/structure/page") 
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)

View solution in original post

4 Replies

Avatar

Community Advisor

Can you try something like

 

@Model(adaptables = SlingHttpServletRequest.class, adapters = {Page.class, ContainerExporter.class}, resourceType = PageImpl.RESOURCE_TYPE)
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)

https://github.com/adobe/aem-core-wcm-components/blob/e49999b3733ceb487fd40774ac4a15f921713336/bundl... 

Avatar

Level 2

Hello, thank you for your answer.

Somehow i cannot do 

resourceType = PageImpl.RESOURCE_TYPE

Because my IDE doesnt recognize it.

public class MyModel extends ModelJsonExporter implements ComponentExporter{

 Could be because my model definition?

Avatar

Correct answer by
Community Advisor

Hi,

You need to do like

 

@Model(adaptables = SlingHttpServletRequest.class, adapters = {MyModel.class, ContainerExporter.class}, resourceType ="myapp/components/structure/page") 
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)

Avatar

Level 2

Yes this is the way, it was not working for some other issue.

Thanks a lot!