Hey guys, hope you doing fine.
I am facing a problem with getting the currentPage in a component in AEM 6.5 with SPA.
I am trying to get the current page inside of a model that is mapped to a component that is locked in a template, I think if I had the component unlocked the code to get the current page would work just fine but as I really need to use that component locked I have this issue.
Does anyone have any sugestion to me?
Down bellow follows the code to get the currentPage
@inject
private Page currentPage;
public Page getCurrentPage() {
return currentPage;
}
the problem is that it is getting the first page from bottom up and not the correct page. As if It is returning the first that is found. And another problem that I found is that if I change the name of the attribute to another name other them currentPage, like resourcePage for example that return would be null.
If you guys have any suggestion feel free to answer here or direct message me. Thank you in advance.
Solved! Go to Solution.
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Total Likes
Please check below Code:
@Model(adaptables = SlingHttpServletRequest.class) public class TestModel { @Inject @Source("script-bindings") Page currentPage; public String getPath() { return currentPage.getPath(); } } |
<div data-sly-use.example="com.sling.models.core.models.TestModel"> ${example.path}<br/> </div> |
Please check below Code:
@Model(adaptables = SlingHttpServletRequest.class) public class TestModel { @Inject @Source("script-bindings") Page currentPage; public String getPath() { return currentPage.getPath(); } } |
<div data-sly-use.example="com.sling.models.core.models.TestModel"> ${example.path}<br/> </div> |
Views
Replies
Total Likes
Hello @VasconcelosAqui , did you fix this? I'm having the same problem. I think it's related to those annotations. But I wasn't able to make it work.
Even this line doesn't work because current resource is in the template and the resultant currentPage will be structure of that template.
currentPage = request.getResourceResolver().adaptTo(PageManager.class).getContainingPage(resource);
Views
Replies
Total Likes
Looks like it's an existing issue as mentioned here:
https://github.com/adobe/aem-sample-we-retail-journal/issues/53
As a workaround you can use the below approach:
currentPage = request.getResourceResolver().adaptTo(PageManager.class).getContainingPage(resource);
Thanks!
Views
Replies
Total Likes
Views
Replies
Total Likes