Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

data-sly-call not invoked in sightly

Avatar

Level 5

Hi

I have a component SightlyTest in which i have following file :

SightlyTest.html : 

Hello Sightly         ${properties.description} <div data-sly-use.extra="extra1.html">     <div data-sly-call="${extra @ text=properties.description}"></div> </div>

extra1.html : 

<template data-sly-template.extra="${@ text}"           data-sly-use.extraHelper="${'ExtraHelper' @ text=text}">           <p>${extraHelper.reversedText}</p> </template>

ExtraHelper.java :

package apps.AEMProject.components.content.SightlyTest; import com.adobe.cq.sightly.WCMUse; public class ExtraHelper extends WCMUse { private String reverseText; @Override public void activate() throws Exception { String text = get("text", String.class); reverseText = new StringBuffer(text).reverse().toString(); } public String getReverseText() { return reverseText; } }

But noting shows as output, what i can see only Hello Sightly . ${properties.description} shows the value of property.

Any Idea.

1 Accepted Solution

Avatar

Correct answer by
Employee

Can you change this to all lowercase, and then also change the package of your Java-class to all lowercase?

To me this is likely the cause...

View solution in original post

7 Replies

Avatar

Employee

hi ,

Can you try this?

<div data-sly-call="${extra.extra @ text=properties.description}"></div>

You have data-sly-use.extra, and your template is also called extra.

Avatar

Level 5

Feike Visser wrote...

hi ,

Can you try this?

<div data-sly-call="${extra.extra @ text=properties.description}"></div>

You have data-sly-use.extra, and your template is also called extra.

 

 Hi I tried this, its not working. Also now i have changed the template file name to extra1.html but still no success,

Thanks

Avatar

Employee

This works perfectly with me...

<div data-sly-use.extra="extra1.html">

    <div data-sly-call="${extra.extra @ text='hello'}"></div>

</div>

 

extra1.html:

 

<template data-sly-template.extra="${@ text}">

          <p>hello from template</p>

</template>

Can you first try this?

Avatar

Level 5

Feike Visser wrote...

This works perfectly with me...

<div data-sly-use.extra="extra1.html">

    <div data-sly-call="${extra.extra @ text='hello'}"></div>

</div>

 

extra1.html:

 

<template data-sly-template.extra="${@ text}">

          <p>hello from template</p>

</template>

Can you first try this?

 

Yes, This works, But the issue was in the invocation of ExtraHelper class. 

<template data-sly-template.extra="${@ text}" data-sly-use.extraHelper="${'ExtraHelper' @ text=text}"> <p>${extraHelper.reversedText}</p> </template>

which is still there, Its not initializing extraHelper with the text 'hello' that we are passing above, the output should come as olleh. But nothing shows as output. Even when i write System.out.println(":::::"); its doesn't write anything to stdout.log.

Thanks

Avatar

Employee

Ok, now we are getting somewhere 🙂

What is the path of your component?

Avatar

Level 5

Feike Visser wrote...

Ok, now we are getting somewhere 🙂

What is the path of your component?

 

This is component path : /apps/AEMProject/components/content/SightlyTest

Avatar

Correct answer by
Employee

Can you change this to all lowercase, and then also change the package of your Java-class to all lowercase?

To me this is likely the cause...