Expand my Community achievements bar.

SOLVED

Referencing a global variable in any component

Avatar

Level 1

I have a figure which is regularly used throughout the website and every time this figure changes, we have to update every page that it is being used on. I was wondering if there was a way to have some sort of global variable where this can referenced in any component using something like "we have [variable] customers" but the resulting text would be "we have 240 customers".

1 Accepted Solution

Avatar

Correct answer by
Level 10

You could use page session [1] or save it on server side using jcr-node/property/osgi config/sling feature/ or client side using localStorage/sessionStorage/cookie based on your use case.

[1]

Refer - global.jsp <%@page session="true"%>

View solution in original post

2 Replies

Avatar

Level 10

AEM does not really have "global variable" functionality. Variable scope is defined at the component level - be it Java as the case of Java Sling Models or HTL code. That is, a variable defined in 1 HTL component is not defined in another component.

If you want a value to be applicable across multiple components - I would look at storing a value in an AEM Node. THen in your components - you can code it to read that node value. If you change that node value - it will reflect across multiple components. 

Avatar

Correct answer by
Level 10

You could use page session [1] or save it on server side using jcr-node/property/osgi config/sling feature/ or client side using localStorage/sessionStorage/cookie based on your use case.

[1]

Refer - global.jsp <%@page session="true"%>