In Adobe Experience Manager (AEM), components are the primary elements that content authors use to build pages. One of the most frequently used components is the Image Component, which allows authors to add and manage images within their content. This guide will walk you through the process of creating an image component in AEM.
Key Takeaways
- An image component in AEM allows content authors to add and manipulate images on a page.
- The process of creating an image component involves accessing and using AEM’s CRXDE Lite.
- A custom image component requires a specific structure, including nodes for the component, dialog, and image rendition.
- Validation and testing of the created component are crucial to ensure correct functionality.
Understanding the Image Component
An image component in AEM is a reusable piece of content that allows content authors to add an image to the page, define its size, alignment, alternate text, and other properties. It provides authors with flexibility and control over how images display on their pages.
Accessing CRXDE Lite
To create a custom image component, you’ll need to access CRXDE Lite, which is AEM’s built-in development environment.
Steps to Access CRXDE Lite
- Open your web browser and navigate to
http://[your_AEM_server]:[port]/crx/de
. - Log in with your AEM credentials.
Creating the Component Structure
After accessing CRXDE Lite, you’ll need to create the structure for your image component.
Steps to Create the Component Structure
- In the left-hand side panel, navigate to
/apps/your_project/components
. - Right-click on the
components
node and selectCreate -> Create Node
. - Name the node after your component (e.g., ‘myImage’) and set the
jcr:primaryType
property tocq:Component
. - Create a
cq:dialog
node under your component node and set itsjcr:primaryType
property tont:unstructured
.
Defining the Dialog
The dialog is where content authors will configure the image properties. You need to define this in your component structure.
Steps to Define the Dialog
- Under the
cq:dialog
node, create acontent
node withjcr:primaryType
set tont:unstructured
. - Under the
content
node, create anitems
node, also withjcr:primaryType
set tont:unstructured
. - Under the
items
node, create a node for each property you want the image to have (e.g., ‘file’, ‘alt’, ‘title’, etc.). Set theirjcr:primaryType
tont:unstructured
and define their properties as needed.
Adding Image Rendition
The image rendition defines how the image will be displayed on the page. It’s defined in the component’s html.jsp
file.
Steps to Add Image Rendition
- Under your component node, create a file named
html.jsp
. - In this file, write the JSP code that will render the image using the properties defined in the dialog.
Saving Your Changes
After defining the dialog and adding the image rendition, you need to save your changes.
Steps to Save Changes
- Click the
Save All
button at the top of the CRXDE Lite interface.
Validating the Component
The final step is to validate that your component works as expected.
Steps to Validate the Component
- Navigate to a page in the AEM authoring interface.
- Open the component side panel and find your image component.
- Drag the component to the page, configure it using the dialog, and verify that it displays correctly.
Conclusion
Creating a custom image component in AEM gives content authors more control over how images are displayed on their pages. By understanding the process of creating an image component in AEM, you can extend the functionality of your AEM site and provide a richer content authoring experience.
![Kirll Efimov](https://aem-development.com/wp-content/uploads/kirill_efimov.jpg)
I’m Kirill Efimov, an experienced AEM developer with over 10 years of experience in Java and web development. I’m skilled in developing AEM components, templates, workflows, and integrations with other systems, and I’m passionate about delivering high-quality solutions to my clients.
I also believe in knowledge-sharing and staying up-to-date with the latest developments in the industry. Through blog posts, tutorials, and speaking engagements, I’m committed to contributing to the AEM community and helping others overcome the challenges they may face in their AEM projects.