Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
SOLVED

Should I use sling model class or implicit properties for my component ?

Avatar

Level 8

I have a component and it has 7 dialog properties and 5 fields are  straightforward fields and there is no business logic, 2 fields needs some manipulation.  It is return the same way what is authored. I have two options 

 

Case 1 : All 7 fields are simple and return simple string.

Method 1 - Use ${properties.prope1}

Method 2 - Create sling model class and get the property value, like ${myslinemodel.prop1}

 

Which method is recommended one for Case 1 and why?

 

Case 2 : only 2 fields needs to have some manipulation and 5 fields return simple return 

Method 1 - Use ${properties.prope1} for simple dialog fields and Use ${myslinemodel.prop2} for the backend manipulation

Method 2 - Use  ${myslinemodel.prop2} for all 7 fields.

 

Which method is recommended one for Case 2 and why?

 

We know both methods works but still wanted to know which method is preferred one.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor
5 Replies

Avatar

Community Advisor

Hi @Mario248 

 

It's always recommended to separate the business logic from the presentation layer. So, it's always recommended to use sling models to fetch the values from the dialog, even though it's just a getter and setter.

 

Hope it helps!

Thanks,
Kiran Vedantam.

Avatar

Community Advisor

Sling Models, it is a best practice to use a Sling Model in case of retrieving and performing business logics on the authored values.

-Sravan

Avatar

Correct answer by
Community Advisor

Avatar

Level 7

Hello @Mario248 

I think for case 1 you can use global object properties to access as all are simple string values and no value manipulation required. No need to bother about Sling Model.

 

For Case 2, If you need to perform some value manipulation ( even if it's minor only ) then it would be recommended to do it at Server Side i.e. Sling Model and return the values.

 

P.S. I also faced this situation and opted for Sling Model approach.