Hi Team,
I Need to get page properties in the sling model if page property is null or empty then we need to get from its parent if that also null or empty then we need to get from its parent the like inherited page properties.
if any one did like these please share sling model login so that it will be usefull
Thanks and Regards
Manikantha R
Solved! Go to Solution.
Views
Replies
Total Likes
HI @manikanthar1295 if you want to read page properties you have to inject the page, with that you can able to read page properties. And if you want to read inherited properties you have to use HierarchyNodeInheritanceValueMap.
Here is the piece of code.
HI @manikanthar1295 if you want to read page properties you have to inject the page, with that you can able to read page properties. And if you want to read inherited properties you have to use HierarchyNodeInheritanceValueMap.
Here is the piece of code.
If you already have acs-commons installed, you can use @HierarchicalPageProperty Sling Models Injector.
@HierarchicalPageProperty("cq:designPath")
private String designPath;
@manikanthar1295 Did you find the suggestions from users helpful? Please let us know if more information is required. Otherwise, please mark the answer as correct for posterity. If you have found out solution yourself, please share it with the community.
here is my context.xml
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
jcr:primaryType="nt:unstructured"
jcr:title="Page"
sling:resourceType="cq/gui/components/authoring/dialog"
extraClientlibs="[cq.common.wcm,core.wcm.components.page.v3.editor,cq.wcm.msm.properties,granite.contexthub.configuration,cq.siteadmin.admin.properties,core.wcm.components.image.v3.editor]"
helpPath="https://www.adobe.com/go/aem_cmp_page_v3"
mode="edit"
trackingFeature="core-components:page:v3">
<content
granite:class="cq-dialog-content-page"
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/container">
<items jcr:primaryType="nt:unstructured">
<tabs
granite:class="cq-siteadmin-admin-properties-tabs"
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/tabs"
size="L">
<items jcr:primaryType="nt:unstructured">
<newtab
cq:showOnCreate="{Boolean}true"
jcr:primaryType="nt:unstructured"
jcr:title="New Tab"
sling:resourceType="granite/ui/components/coral/foundation/fixedcolumns">
<items jcr:primaryType="nt:unstructured">
<column
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/container">
<items jcr:primaryType="nt:unstructured">
<section
jcr:primaryType="nt:unstructured"
jcr:title="New Custom tab"
sling:resourceType="granite/ui/components/coral/foundation/form/fieldset">
<items jcr:primaryType="nt:unstructured">
<textfield
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
name="./testfield"/>
</items>
</section>
</items>
</column>
</items>
</newtab>
</items>
</tabs>
</items>
</content>
</jcr:root>
here is my custom properties
how to get this page properties
You can retrieve page properties values in HTL using the following syntax.
${pageProperties.testfield}