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
BedrockMission!

Learn More

View all

Sign in to view all badges

How to pass multiple parameters to sling model from sightly

Avatar

Avatar
Validate 1
Level 1
LaMind3
Level 1

Like

1 like

Total Posts

15 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile

Avatar
Validate 1
Level 1
LaMind3
Level 1

Like

1 like

Total Posts

15 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile
LaMind3
Level 1

09-12-2020

I have written sling model exporter . I need to call this by passing 2 parameters fileReference & imgParam

<sly data-sly-use.slingmodel="com.myproj.core.models.TestSlingModel"  @ fileReference ='/some/path/to/file' , @ imgParam='image'/>

 

In sling model (@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})

I have written:

@getter
@ValueMapValue
private String fileReference;

 

@getter
@ValueMapValue
private String imgParam;

 

I am not able to pass parameters properly. Can anyone tell me if this is right way of passing multiple parameters?

 

 

AEM 6.5.5.0 Sling Model
View Entire Topic

Avatar

Avatar
Give Back 3
MVP
Manjunath_K
MVP

Likes

138 likes

Total Posts

188 posts

Correct Reply

61 solutions
Top badges earned
Give Back 3
Give Back
Boost 50
Boost 5
Boost 3
View profile

Avatar
Give Back 3
MVP
Manjunath_K
MVP

Likes

138 likes

Total Posts

188 posts

Correct Reply

61 solutions
Top badges earned
Give Back 3
Give Back
Boost 50
Boost 5
Boost 3
View profile
Manjunath_K
MVP

09-12-2020

Hi @LaMind3 ,

Try passing multiple parameters as mentioned below, for sample i have hardcoded parameter as string values here & replace these hardcoded value by dynamic values. please make sure datatype of dynamic value getting passed in sightly is same as datatype defined for @Inject variable in Sling Model class. 

 

Sightly:

<sly data-sly-test.file="/some/path/to/file" data-sly-test.image="image">
<sly data-sly-use.helloWorldModel="${'com.project.HelloWorldModel' @fileReference=file, imgParam=image}"/>
</sly>

 

Sling Model Class:

@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class HelloWorldModel {

@Inject
private String fileReference;

@Inject
private String imgParam;

 

Hope this helps!