#Adobe Experience Manager

How to Add Listeners in Adobe Experience Manager (AEM)

Sommaire

Adobe Experience Manager (AEM) is a comprehensive content management solution for building websites, mobile apps, and forms. It is a part of Adobe’s Marketing Cloud, which includes other products like Analytics, Campaign, Target, and Social. Among AEM’s many features, one key aspect is the ability to add “listeners”. But what does this mean and how do we do it? This guide aims to answer these questions and more.

Key Takeaways

  • Listeners in AEM are event handlers that respond to various user or system actions.
  • They can be implemented in both client-side (JavaScript) and server-side (Java).
  • Listeners provide a way to customize and enhance the user experience in AEM.
  • Different types of listeners can be added for different types of events.

The Concept of Listeners in AEM

A “listener” in AEM is a piece of code that waits for certain events to occur, and then performs a specific action in response. These events can be anything from user interactions, such as clicking a button, to system events like page loading or unloading.

Listeners are a fundamental concept in event-driven programming, which is a programming paradigm where the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs.

The Role of Listeners

Listeners play a crucial role in enhancing the interactivity and user experience of AEM websites. They allow developers to create custom responses to user actions, or automate specific tasks based on system events.

For example, you may want to display a welcome message when a user lands on a page (a system event), or collect form data when a user clicks a submit button (a user action). These are just some of the many possibilities that listeners provide.

Adding Client-side Listeners

Client-side listeners are created using JavaScript. They are typically used to handle user interactions in the browser. Here’s an example of how you can add a click listener to a button in AEM:

javascriptCopy

$('.button-class').click(function() {
    // Code to run when button is clicked
});

In the above code, $(‘.button-class’)selects the button with the class button-class, and .click() adds a click listener to it. The function inside .click() specifies what should happen when the button is clicked.

Adding Server-side Listeners

Server-side listeners are created using Java and are typically used to handle system events in AEM. Here’s an example of how you can add a server-side listener in AEM:

@Component(service = ResourceChangeListener.class, immediate = true)
public class CustomListener implements ResourceChangeListener {

    @Reference
    private ResourceResolverFactory resourceResolverFactory;

    private ResourceResolver resourceResolver;

    @Activate
    protected void activate() throws LoginException {
        resourceResolver = resourceResolverFactory.getServiceResourceResolver(
            Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "datawrite"));
    }

    @Deactivate
    protected void deactivate() {
        if (resourceResolver != null && resourceResolver.isLive()) {
            resourceResolver.close();
        }
    }

    @Override
    public void onChange(List<ResourceChange> changes) {
        for (ResourceChange change : changes) {
            if (change.getType() == ChangeType.ADDED || change.getType() == ChangeType.CHANGED) {
                // Handle the added or changed resource
                String resourcePath = change.getPath();
                // Your custom logic here
            }
        }
    }
}

In this Java code, a new service is created that implements the EventListener interface. The activate() method is called when the service is activated, and the deactivate() method is called when the service is deactivated.

Listener Types in AEM

There are different types of listeners that you can add in AEM, depending on the type of event you want to handle. Here’s a brief overview:

Listener TypeDescription
ClickTriggered when a user clicks on an element.
ChangeTriggered when the value of an input field changes.
LoadTriggered when a page or an element has finished loading.
UnloadTriggered when a page or an element is unloaded or navigated away from.

In Summary

Listeners in AEM are a powerful tool for creating responsive and interactive user experiences. By understanding and utilizing listeners effectively, developers can create more engaging content and applications on the AEM platform. Whether it’s client-side or server-side, understanding how to add and use listeners can greatly enhance your AEM development skills.

Retour au glossaire

Blog d'Axamit

Obtenez les dernières informations sur Adobe Experience Manager Mises à jour, tendances, meilleures pratiques
What is RT-CDP
février 3, 2025

Qu’est-ce qu’Adobe Real-Time Customer Data Platform

Découvrez les avantages et les défis d'Adobe Real-Time CDP. Du traitement des données en temps réel à la génération de contenu dynamique, découvrez comment cet outil puissant peut aider les entreprises à offrir des expériences client personnalisées — et où il pourrait présenter des lacunes.

Lire la suite
janvier 23, 2025

Revitaliser l’engagement client avec la CDP pour le commerce électronique et le commerce de détail

Découvrez Adobe Real-Time CDP pour les industries du commerce de détail et de l'e-commerce. Apprenez à personnaliser les parcours clients, à renforcer l'engagement et à garantir la conformité.

Lire la suite
AJO_B2B
décembre 2, 2024

Adobe Journey Optimizer : Transformer l’engagement client B2B

Découvrez comment Adobe Journey Optimizer B2B Edition permet aux entreprises de bénéficier de parcours personnalisés, d'une intelligence commerciale améliorée et d'intégrations fluides.

Lire la suite