{"id":3191,"date":"2024-11-14T16:22:51","date_gmt":"2024-11-14T16:22:51","guid":{"rendered":"https:\/\/sankhamtech.com\/index.php\/content\/india\/english\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/"},"modified":"2024-11-15T18:17:31","modified_gmt":"2024-11-15T18:17:31","slug":"creating-a-composite-multifield-in-aem","status":"publish","type":"page","link":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/","title":{"rendered":"Creating a Composite Multifield in AEM"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3191\" class=\"elementor elementor-3191\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8119628 e-flex e-con-boxed e-con e-parent\" data-id=\"8119628\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6f2baeb e-con-full e-flex e-con e-child\" data-id=\"6f2baeb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-04a93bd elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"04a93bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h6 style=\"text-align: center;\"><span style=\"text-decoration: underline;\">Lessons<\/span><\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-735cff4 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-text-editor\" data-id=\"735cff4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h6 style=\"text-align: center;\"><a href=\"https:\/\/sankhamtech.com\/index.php\/content\/india\/english\/home\/free-courses\/aem-backend-concepts\/\"><span style=\"text-decoration: underline;\">Lessons<\/span><\/a><\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05e6d4d elementor-hidden-mobile elementor-widget elementor-widget-darsanam_header_menu_widget\" data-id=\"05e6d4d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"darsanam_header_menu_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"darsanam-menu-wrapper \"><div class='hamburger-icon'> &nbsp; Menu<\/div><div class=\"menu-container\"><nav class='elementor-menu'><ul class='darsanam-menu-vertical'><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/github-link-for-the-entire-course\/'>Github Link for the Entire Course<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-how-the-internet-works\/'>[VIDEO LESSON] How the Internet Works<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-web-development-architecture-decoded\/'>[VIDEO LESSON] Web Development Architecture Decoded<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/introduction-to-content-management-systems\/'>Introduction to Content Management Systems<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/content-management-vs-experience-management\/'>Content Management vs Experience Management<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-what-is-adobe-experience-manager\/'>[VIDEO LESSON] What is Adobe Experience Manager?<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-how-to-obtain-adobe-experience-manager-aem-jar-from-adobe\/'>[VIDEO LESSON] How to Obtain Adobe Experience Manager (AEM) JAR from Adobe<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-installing-aem-jar\/'>[VIDEO LESSON] Installing AEM Jar<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/troubleshooting-common-issues-in-installing-aem-jar\/'>Troubleshooting Common Issues in Installing AEM JAR<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-author-and-publish-instances\/'>Understanding Author and Publish Instances<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-and-editing-a-page-in-aem\/'>Creating and Editing a Page in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/find-where-page-is-saved-in-backend\/'>Find Where Page is Saved in Backend<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/aems-sling-framework-understanding-component-resolution-and-rendering\/'>AEM\u2019s Sling Framework: Understanding Component Resolution and Rendering<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-creating-a-hello-world-component-in-aem-using-crx-de\/'>[VIDEO LESSON] Creating a \u201cHello World\u201d Component in AEM Using CRX\/DE<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-jcr-in-the-context-of-aem\/'>Understanding JCR in the Context of AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/nodes-and-properties-in-jcr\/'>Nodes and Properties in JCR<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/jcr-sessions-and-workspaces\/'>JCR Sessions and Workspaces<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-sql2-queries-in-aem\/'>Understanding SQL2 Queries in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-and-using-aems-querybuilder-tool\/'>Understanding and Using AEM\u2019s QueryBuilder Tool<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/import-and-export-jcr-data-using-package-manager\/'>Import and Export JCR Data Using Package Manager<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/installing-aem-project-archetype\/'>Installing AEM Project Archetype<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/troubleshooting-common-post-deployment-issues-in-aem\/'>Troubleshooting Common Post-Deployment Issues in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-dialog-box-authoring-development\/'>[VIDEO LESSON] AEM Dialog Box Authoring & Development<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-htl-language-syntax-practice\/'>[VIDEO LESSON] AEM HTL Language Syntax Practice<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-htl-global-objects\/'>[VIDEO LESSON] AEM HTL Global Objects<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-htl-global-objects-contd\/'>[VIDEO LESSON] AEM HTL Global Objects (Contd.)<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-understanding-aem-dialog-box\/'>[VIDEO LESSON] Understanding AEM Dialog Box<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-and-deploying-component-in-aem\/'>Creating and Deploying Component in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/create-various-dialog-box-fields\/'>Create Various Dialog Box Fields<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-sling-models-and-sightly-introduction\/'>[VIDEO LESSON] Sling Models and Sightly Introduction<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-sling-model-explained-with-real-use-case\/'>[VIDEO LESSON] Sling Model Explained with Real Use Case<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-resource-resolver-query-builder\/'>[VIDEO LESSON] AEM Resource Resolver & Query Builder<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-query-builder-java-beans\/'>[VIDEO LESSON] AEM Query Builder & Java Beans<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-add-css-to-aem-component\/'>[VIDEO LESSON] Add CSS to AEM Component<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-templates-components-authoring\/'>[VIDEO LESSON] AEM Templates & Components Authoring<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-add-css-variations-to-aem-component\/'>[VIDEO LESSON] Add CSS Variations to AEM Component<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-multi-field-in-aem\/'>Creating a Multi-Field in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/' style='color: #FF7700 !important'>Creating a Composite Multifield in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/implementing-conditional-dialog-fields\/'>Implementing Conditional Dialog Fields<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/best-practices-for-creating-sling-models\/'>Best Practices for Creating Sling Models<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-introduction-to-aem-sling-servlet\/'>[VIDEO LESSON] Introduction to AEM Sling Servlet<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-headless-servlet-implementation\/'>[VIDEO LESSON] AEM Headless \u2013 Servlet Implementation<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-osgi-services-introduction\/'>[VIDEO LESSON] OSGI Services Introduction<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-aem-osgi-services-implementation\/'>[VIDEO LESSON] AEM OSGI Services Implementation<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lesson-filters-in-osgi-services\/'>[VIDEO LESSON] Filters in OSGI Services<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/calling-external-api-from-osgi-service\/'>Calling External API from OSGI Service<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/improving-aem-sling-model-with-service-layer-integration\/'>Improving AEM Sling Model with Service Layer Integration<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/best-practices-for-secure-and-efficient-resource-access\/'>Best Practices for Secure and Efficient Resource Access<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/video-lessonstep-by-step-process-to-get-resource-resolver-from-system-user\/'>[VIDEO LESSON]Step By Step Process to Get Resource Resolver from System User<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/the-importance-and-use-cases-of-workflows\/'>The Importance and Use Cases of Workflows<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/introduction-to-workflow-creation\/'>Introduction to Workflow Creation<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-participant-step-in-aem\/'>Understanding Participant Step in AEM<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-workflow-steps\/'>Understanding Workflow Steps<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/understanding-workflow-steps-contd\/'>Understanding Workflow Steps [Contd.]<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/step-1-understand-aem-workflow-use-case\/'>Step 1: Understand AEM Workflow Use Case.<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/step-2-create-user-groups-and-assign-users\/'>Step 2: Create User Groups and Assign Users<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/step-3-create-new-page-properties\/'>Step 3: Create New Page Properties<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><li class='darsanam-menu-item'><a href='https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/workflow-example-code-below\/'>Workflow Example Code Below<\/a><i class=\"menu-icon-right fas fa-angle-right\"><\/i><\/li><\/ul><\/nav><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c06ea7 e-con-full e-flex e-con e-child\" data-id=\"3c06ea7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d7a58e elementor-widget elementor-widget-text-editor\" data-id=\"4d7a58e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Creating a Composite Multifield in AEM<\/h2><p><\/p><h3 class=\"wp-block-heading\"><strong>Step 1: Extending the Dialog Box for the Profile Component<\/strong><\/h3><p> <\/p><ol class=\"wp-block-list\"><li><strong>Location<\/strong>: Start by navigating to the path <code>ui.apps\/src\/main\/content\/jcr_root\/apps\/wknd\/components\/profile<\/code> in your AEM project using IntelliJ.<\/li> <li><strong>Dialog Box Extension<\/strong>:<ul class=\"wp-block-list\"><li>Add a new node under the existing dialog definition for the &#8220;Profile&#8221; component.<\/li> <li>Name this node <code>previousExperience<\/code> and set its <code>sling:resourceType<\/code> to <code>\"granite\/ui\/components\/coral\/foundation\/form\/multifield\"<\/code>.<\/li> <li>Inside this node, create a <code>field<\/code> node with <code>sling:resourceType<\/code> as <code>\"granite\/ui\/components\/coral\/foundation\/form\/fieldset\"<\/code>.<\/li> <li>Under the <code>field<\/code> node, add nodes for each subfield: <code>companyName<\/code>, <code>startDate<\/code>, and <code>endDate<\/code>. Set their respective <code>sling:resourceType<\/code> to the appropriate field types (<code>textfield<\/code> for <code>companyName<\/code> and <code>datepicker<\/code> for <code>startDate<\/code> and <code>endDate<\/code>).<\/li><\/ul><\/li><\/ol><p> <\/p><pre class=\"wp-block-code\"><code>&lt;!-- Previous Experience Multifield --&gt;\n&lt;previousExperience\n\t\tjcr:primaryType=\"nt:unstructured\"\n\t\tsling:resourceType=\"granite\/ui\/components\/coral\/foundation\/form\/multifield\"\n\t\tcomposite=\"{Boolean}true\"\n\t\tfieldLabel=\"Previous Experience\"\n\t   &gt;\n\t&lt;field\n\t\t\tjcr:primaryType=\"nt:unstructured\"\n\t\t\tsling:resourceType=\"granite\/ui\/components\/coral\/foundation\/container\"\n\t\t\tname=\".\/prevExperiences\"&gt;\n\t\t&lt;items jcr:primaryType=\"nt:unstructured\"&gt;\n\t\t\t\t&lt;companyName\n\t\t\t\t\t\tjcr:primaryType=\"nt:unstructured\"\n\t\t\t\t\t\tsling:resourceType=\"granite\/ui\/components\/coral\/foundation\/form\/textfield\"\n\t\t\t\t\t\tfieldLabel=\"Company Name\"\n\t\t\t\t\t\tname=\".\/companyName\"\/&gt;\n\t\t\t\t&lt;startDate\n\t\t\t\t\t\tjcr:primaryType=\"nt:unstructured\"\n\t\t\t\t\t\tsling:resourceType=\"granite\/ui\/components\/coral\/foundation\/form\/datepicker\"\n\t\t\t\t\t\tfieldLabel=\"Start Date\"\n\t\t\t\t\t\tname=\".\/startDate\"\/&gt;\n\t\t\t\t&lt;endDate\n\t\t\t\t\t\tjcr:primaryType=\"nt:unstructured\"\n\t\t\t\t\t\tsling:resourceType=\"granite\/ui\/components\/coral\/foundation\/form\/datepicker\"\n\t\t\t\t\t\tfieldLabel=\"End Date\"\n\t\t\t\t\t\tname=\".\/endDate\"\/&gt;\n\t\t&lt;\/items&gt;\n\t&lt;\/field&gt;\n&lt;\/previousExperience&gt;<\/code><\/pre><p> <\/p><h3 class=\"wp-block-heading\"><strong>Step 2: Sling Model Creation<\/strong><\/h3><p> <\/p><h4 class=\"wp-block-heading\"><strong>Profile Component Sling Model<\/strong>:<\/h4><p> <\/p><pre class=\"wp-block-code\"><code>package com.adobe.aem.guides.wknd.core.models;\n\nimport org.apache.sling.api.resource.Resource;\nimport org.apache.sling.models.annotations.Model;\nimport org.apache.sling.models.annotations.injectorspecific.ChildResource;\nimport org.apache.sling.models.annotations.DefaultInjectionStrategy;\nimport org.apache.sling.models.annotations.injectorspecific.ValueMapValue;\n\n\nimport java.util.List;\n\n\n@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)\npublic class ProfileModel {\n\n    @ValueMapValue\n    private List&lt;String&gt; hobbies;\n    @ChildResource\n    private List&lt;Experience&gt; previousExperience;\n\n    public List&lt;Experience&gt; getPreviousExperience() {\n        return previousExperience;\n    }\n\n\n    public List&lt;String&gt; getHobbies() {\n        return hobbies;\n    }\n}\n\n<\/code><\/pre><p> <\/p><p><strong>Package Declaration<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li><code>package com.adobe.aem.guides.wknd.core.models;<\/code><\/li> <li>This statement declares that the class belongs to the package <code>com.adobe.aem.guides.wknd.core.models<\/code>.<\/li><\/ul><p> <\/p><p><strong>Imports<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li>The import statements load various classes and interfaces that are used in the <code>ProfileModel<\/code> class.<\/li><\/ul><p> <\/p><p><strong>Class Annotation (<code>@Model<\/code>)<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li><code>@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)<\/code><\/li> <li>This is an annotation from the Sling Models framework. It indicates that this class is a Sling Model that can be adapted from a <code>Resource<\/code>. The <code>defaultInjectionStrategy<\/code> being <code>OPTIONAL<\/code> means that if a field cannot be injected, it will be ignored rather than causing an error.<\/li><\/ul><p> <\/p><p><strong>Class Definition<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li><code>public class ProfileModel { ... }<\/code><\/li> <li>This defines the <code>ProfileModel<\/code> class.<\/li><\/ul><p> <\/p><p><strong>Fields<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li><code>@ValueMapValue private List&lt;String&gt; hobbies;<\/code><ul class=\"wp-block-list\"><li>This field represents a list of hobbies. The <code>@ValueMapValue<\/code> annotation is used to inject the value from the resource&#8217;s ValueMap (a key-value map of properties).<\/li><\/ul><\/li> <li><code>@ChildResource private List&lt;Experience&gt; previousExperience;<\/code><ul class=\"wp-block-list\"><li>This field represents a list of <code>Experience<\/code> objects. The <code>@ChildResource<\/code> annotation is used to inject child resources. Here, it&#8217;s expected that the <code>Experience<\/code> objects are child nodes of the current resource in the JCR (Java Content Repository).<\/li><\/ul><\/li><\/ul><p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f343c2 elementor-widget elementor-widget-image\" data-id=\"0f343c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-1024x511.png\" class=\"attachment-large size-large wp-image-1587\" alt=\"\" srcset=\"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-1024x511.png 1024w, https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-300x150.png 300w, https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-768x383.png 768w, https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-600x299.png 600w, https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20.png 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85918ab elementor-widget elementor-widget-text-editor\" data-id=\"85918ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p><p><strong>Getters<\/strong>:<\/p><p> <\/p><ul class=\"wp-block-list\"><li>These are methods to access the values of the fields:<ul class=\"wp-block-list\"><li><code>public List&lt;Experience&gt; getPreviousExperience() { return previousExperience; }<\/code><\/li> <li><code>public List&lt;String&gt; getHobbies() { return hobbies; }<\/code><\/li><\/ul><\/li> <li>These methods allow other parts of the AEM application to access the <code>hobbies<\/code> and <code>previousExperience<\/code> properties.<\/li><\/ul><p> <\/p><h4 class=\"wp-block-heading\"><strong>Experience Component Sling Model<\/strong>:<\/h4><p> <\/p><pre class=\"wp-block-code\"><code>package com.adobe.aem.guides.wknd.core.models;\n\nimport org.apache.sling.api.resource.Resource;\nimport org.apache.sling.models.annotations.Model;\nimport org.apache.sling.models.annotations.DefaultInjectionStrategy;\nimport org.apache.sling.models.annotations.injectorspecific.ValueMapValue;\n\n\/\/Inner Class for Experience\n@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)\npublic class Experience {\n    @ValueMapValue\n    private String companyName;\n    @ValueMapValue\n    private String startDate;\n    @ValueMapValue\n    private String endDate;\n\n    \/\/ Getters\n    public String getCompanyName() { return companyName; }\n    public String getStartDate() { return startDate; }\n    public String getEndDate() { return endDate; }\n}\n\n<\/code><\/pre><p> <\/p><p>This code defines a Java class named <code>Experience<\/code>, which is part of the <code>com.adobe.aem.guides.wknd.core.models<\/code> package. It is structured as a Sling Model for use in Adobe Experience Manager (AEM). Sling Models facilitate the mapping of Java objects to content stored in AEM&#8217;s Java Content Repository (JCR). Let&#8217;s break down the components of the <code>Experience<\/code> class:<\/p><p> <\/p><ol class=\"wp-block-list\"><li><strong>Package Declaration<\/strong>:<ul class=\"wp-block-list\"><li><code>package com.adobe.aem.guides.wknd.core.models;<\/code><\/li> <li>Specifies that the class is part of the <code>com.adobe.aem.guides.wknd.core.models<\/code> package.<\/li><\/ul><\/li> <li><strong>Imports<\/strong>:<ul class=\"wp-block-list\"><li>The code imports necessary classes and interfaces from the Sling API and Sling Models framework.<\/li><\/ul><\/li> <li><strong>Class Annotation (<code>@Model<\/code>)<\/strong>:<ul class=\"wp-block-list\"><li><code>@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)<\/code><\/li> <li>This annotation marks the class as a Sling Model, meaning it can be adapted from a Sling <code>Resource<\/code>. The <code>defaultInjectionStrategy<\/code> set to <code>OPTIONAL<\/code> indicates that if some fields can&#8217;t be injected with values, the model will still be created without throwing an error.<\/li><\/ul><\/li> <li><strong>Class Definition<\/strong>:<ul class=\"wp-block-list\"><li><code>public class Experience { ... }<\/code><\/li> <li>Defines the <code>Experience<\/code> class.<\/li><\/ul><\/li> <li><strong>Fields (Properties)<\/strong>:<ul class=\"wp-block-list\"><li><code>@ValueMapValue private String companyName;<\/code><ul class=\"wp-block-list\"><li>This field stores the company name. The <code>@ValueMapValue<\/code> annotation is used to inject the value from the resource&#8217;s ValueMap (a map of the property values).<\/li><\/ul><\/li> <li><code>@ValueMapValue private String startDate;<\/code><ul class=\"wp-block-list\"><li>Stores the start date of the experience. Again, <code>@ValueMapValue<\/code> is used for injection.<\/li><\/ul><\/li> <li><code>@ValueMapValue private String endDate;<\/code><ul class=\"wp-block-list\"><li>Stores the end date of the experience.<\/li><\/ul><\/li><\/ul><\/li> <li><strong>Getters<\/strong>:<ul class=\"wp-block-list\"><li><code>public String getCompanyName() { return companyName; }<\/code><\/li> <li><code>public String getStartDate() { return startDate; }<\/code><\/li> <li><code>public String getEndDate() { return endDate; }<\/code><\/li> <li>These methods are getters that provide access to the values of the respective fields. They are used to retrieve the company name, start date, and end date of an experience.<\/li><\/ul><\/li><\/ol><p> <\/p><p>In summary, the <code>Experience<\/code> class in this code is designed as a Sling Model in AEM. It represents an &#8216;experience&#8217; entity with properties like company name, start date, and end date, which are injected from a Sling Resource. This class is likely used in conjunction with other models to represent a user&#8217;s professional experiences in an AEM application.<\/p><p> <\/p><h3 class=\"wp-block-heading\">Step 3: Write Sightly Code<\/h3><p> <\/p><ol class=\"wp-block-list\"><li><strong>HTL Code for Profile Component<\/strong>:<ul class=\"wp-block-list\"><li>Use the <code>data-sly-use<\/code> attribute to instantiate the Profile Sling Model.<\/li> <li>Render the basic profile information as you have already been doing.<\/li> <li>For the &#8220;Previous Experience&#8221; section, use a <code>data-sly-list<\/code> to iterate over <code>previousExperiences<\/code>.<\/li> <li>Inside the loop, render <code>companyName<\/code>, <code>startDate<\/code>, and <code>endDate<\/code> for each <code>Experience<\/code> object.<\/li><\/ul><\/li><\/ol><p> <\/p><pre class=\"wp-block-code\"><code>\n&lt;img src=\"${properties.profilePicture}\" alt=\"Profile Picture\"&gt;\n&lt;h2&gt;${properties.candidateName}&lt;\/h2&gt;\n&lt;p&gt;Date of Birth: ${'dd-MM-yyyy' @ format=properties.dateOfBirth}&lt;\/p&gt;\n&lt;p&gt;Engineering Major: ${properties.engineeringMajor}&lt;\/p&gt;\n&lt;p&gt;Gender: ${properties.gender}&lt;\/p&gt;\n\n&lt;p&gt;Hobbies Listed Below:&lt;\/p&gt;\n&lt;div data-sly-use.profileModel=\"com.adobe.aem.guides.wknd.core.models.ProfileModel\"&gt;\n    &lt;!-- Existing fields here --&gt;\n    &lt;ul data-sly-list.hobby=\"${profileModel.hobbies}\"&gt;\n        &lt;li&gt;${hobby}&lt;\/li&gt;\n    &lt;\/ul&gt;\n\n    &lt;ul data-sly-list.exp=\"${profileModel.previousExperience}\"&gt;\n        &lt;li&gt;${exp.companyName}&lt;\/li&gt;\n    &lt;\/ul&gt;\n&lt;\/div&gt;<\/code><\/pre><p> <\/p><h3 class=\"wp-block-heading\"><strong>Step 4: Testing the Component<\/strong><\/h3><p> <\/p><ol class=\"wp-block-list\"><li><strong>Deploy the Code<\/strong>: Deploy your changes to AEM.<\/li> <li><strong>Open the AEM Authoring Environment<\/strong>: Navigate to a page where the Profile component is used.<\/li> <li><strong>Edit the Component<\/strong>: Open the dialog box for the Profile component.<\/li> <li><strong>Add Previous Experience Data<\/strong>: Use the multifield to add previous experience details.<\/li> <li><strong>Save and Preview<\/strong>: Save the dialog and preview the page to see the rendered output.<\/li><\/ol><p> <\/p><h3 class=\"wp-block-heading\"><strong>Flow of Data from Backend to Frontend<\/strong><\/h3><p> <\/p><ul class=\"wp-block-list\"><li><strong>Dialog Box<\/strong>: The author enters data in the dialog box fields.<\/li> <li><strong>Sling Model<\/strong>: When the page is requested, AEM instantiates the Profile Sling Model, injecting the dialog data into the model.<\/li> <li><strong>HTL Rendering<\/strong>: The HTL script uses the Profile Sling Model to access and render the data on the webpage.<\/li> <li>\u00a0<\/li><\/ul><p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Lessons Lessons &nbsp; Menu Github Link for the Entire Course [VIDEO LESSON] How the Internet Works [VIDEO LESSON] Web Development Architecture Decoded Introduction to Content Management Systems Content Management vs Experience Management [VIDEO LESSON] What is Adobe Experience Manager? [VIDEO LESSON] How to Obtain Adobe Experience Manager (AEM) JAR from Adobe [VIDEO LESSON] Installing AEM [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2868,"menu_order":37,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3191","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating a Composite Multifield in AEM - Sankham Technologies<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating a Composite Multifield in AEM - Sankham Technologies\" \/>\n<meta property=\"og:description\" content=\"Lessons Lessons &nbsp; Menu Github Link for the Entire Course [VIDEO LESSON] How the Internet Works [VIDEO LESSON] Web Development Architecture Decoded Introduction to Content Management Systems Content Management vs Experience Management [VIDEO LESSON] What is Adobe Experience Manager? [VIDEO LESSON] How to Obtain Adobe Experience Manager (AEM) JAR from Adobe [VIDEO LESSON] Installing AEM [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/\" \/>\n<meta property=\"og:site_name\" content=\"Sankham Technologies\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-15T18:17:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1366\" \/>\n\t<meta property=\"og:image:height\" content=\"681\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/\",\"url\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/\",\"name\":\"Creating a Composite Multifield in AEM - Sankham Technologies\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sankhamtech.com\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-20-1024x511.png\",\"datePublished\":\"2024-11-14T16:22:51+00:00\",\"dateModified\":\"2024-11-15T18:17:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sankhamtech.com\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-20.png\",\"contentUrl\":\"https:\\\/\\\/sankhamtech.com\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-20.png\",\"width\":1366,\"height\":681},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/creating-a-composite-multifield-in-aem\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Content\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"India\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"English\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Free Courses\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/index.php\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"AEM Backend Concepts\",\"item\":\"https:\\\/\\\/sankhamtech.com\\\/indexphp\\\/content\\\/in\\\/en\\\/home\\\/free-courses\\\/aem-backend-concepts\\\/\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Creating a Composite Multifield in AEM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#website\",\"url\":\"https:\\\/\\\/sankhamtech.com\\\/\",\"name\":\"Sankham Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sankhamtech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#organization\",\"name\":\"Sankham Technologies\",\"url\":\"https:\\\/\\\/sankhamtech.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sankhamtech.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Logo-Dark-1.png\",\"contentUrl\":\"https:\\\/\\\/sankhamtech.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Logo-Dark-1.png\",\"width\":306,\"height\":74,\"caption\":\"Sankham Technologies\"},\"image\":{\"@id\":\"https:\\\/\\\/sankhamtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a Composite Multifield in AEM - Sankham Technologies","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Composite Multifield in AEM - Sankham Technologies","og_description":"Lessons Lessons &nbsp; Menu Github Link for the Entire Course [VIDEO LESSON] How the Internet Works [VIDEO LESSON] Web Development Architecture Decoded Introduction to Content Management Systems Content Management vs Experience Management [VIDEO LESSON] What is Adobe Experience Manager? [VIDEO LESSON] How to Obtain Adobe Experience Manager (AEM) JAR from Adobe [VIDEO LESSON] Installing AEM [&hellip;]","og_url":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/","og_site_name":"Sankham Technologies","article_modified_time":"2024-11-15T18:17:31+00:00","og_image":[{"width":1366,"height":681,"url":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/","url":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/","name":"Creating a Composite Multifield in AEM - Sankham Technologies","isPartOf":{"@id":"https:\/\/sankhamtech.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/#primaryimage"},"image":{"@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/#primaryimage"},"thumbnailUrl":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20-1024x511.png","datePublished":"2024-11-14T16:22:51+00:00","dateModified":"2024-11-15T18:17:31+00:00","breadcrumb":{"@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/#primaryimage","url":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20.png","contentUrl":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2024\/01\/image-20.png","width":1366,"height":681},{"@type":"BreadcrumbList","@id":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/creating-a-composite-multifield-in-aem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sankhamtech.com\/"},{"@type":"ListItem","position":2,"name":"Content","item":"https:\/\/sankhamtech.com\/index.php\/content\/"},{"@type":"ListItem","position":3,"name":"India","item":"https:\/\/sankhamtech.com\/index.php\/content\/in\/"},{"@type":"ListItem","position":4,"name":"English","item":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/"},{"@type":"ListItem","position":5,"name":"Home","item":"https:\/\/sankhamtech.com\/"},{"@type":"ListItem","position":6,"name":"Free Courses","item":"https:\/\/sankhamtech.com\/index.php\/content\/in\/en\/home\/free-courses\/"},{"@type":"ListItem","position":7,"name":"AEM Backend Concepts","item":"https:\/\/sankhamtech.com\/indexphp\/content\/in\/en\/home\/free-courses\/aem-backend-concepts\/"},{"@type":"ListItem","position":8,"name":"Creating a Composite Multifield in AEM"}]},{"@type":"WebSite","@id":"https:\/\/sankhamtech.com\/#website","url":"https:\/\/sankhamtech.com\/","name":"Sankham Technologies","description":"","publisher":{"@id":"https:\/\/sankhamtech.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sankhamtech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sankhamtech.com\/#organization","name":"Sankham Technologies","url":"https:\/\/sankhamtech.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sankhamtech.com\/#\/schema\/logo\/image\/","url":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2023\/12\/Logo-Dark-1.png","contentUrl":"https:\/\/sankhamtech.com\/wp-content\/uploads\/2023\/12\/Logo-Dark-1.png","width":306,"height":74,"caption":"Sankham Technologies"},"image":{"@id":"https:\/\/sankhamtech.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/pages\/3191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/comments?post=3191"}],"version-history":[{"count":7,"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/pages\/3191\/revisions"}],"predecessor-version":[{"id":3649,"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/pages\/3191\/revisions\/3649"}],"up":[{"embeddable":true,"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/pages\/2868"}],"wp:attachment":[{"href":"https:\/\/sankhamtech.com\/index.php\/wp-json\/wp\/v2\/media?parent=3191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}