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

SOLVED

Display redirected parameters(from servlet response) in redirected page

sankarr26533925
Level 3
Level 3

Form A has few fields and submit button. For form submission, we are using Submit to Rest End point(Sling AEM servlet) and adding redirect URL as Form B path

 

We will get ID value as part of sling AEM servlet response. This ID has to shown in Form B.

 

I have gone through all the below links and could not find how to get ID value in Form B. Please read my question clearly and provide your response. Thanks in advance.

 

How to return a value from submit action and use it in the redirect page?

AEM 6.0 Forms Help | Writing custom Submit action for adaptive forms

https://stackoverflow.com/questions/31454357/aem-6-1-sightly-basic-form-submit-and-redirect-to-same-... 

 

 

1 Accepted Solution
ksetti
Correct answer by
Level 1
Level 1

Hi Sankar, 

 

If you haven't get the answer, you can try below. Just have this code in your submit servlet. 

import com.adobe.aemds.guide.servlet.GuideSubmitServlet;

 

Map<String, String> redirectParameters = GuideSubmitServlet.getRedirectParameters(slingRequest);

redirectParameters.put("responseId", responseId);

GuideSubmitServlet.setRedirectParameters(slingRequest, redirectParameters);

 

You can capture this value using javascript callback function in submit button rule and pass this value to formB

guideBridge.submit({
  error : function (guideResultObject) {//log message},
  success : function (guideResultObject) {
alert(guideResultObject.data.responseId);
}
});

 

View solution in original post

4 Replies
Mayank_Gandhi
Community Advisor
Community Advisor

You can try two things:

1. In the servlet where you are handling the request/response, append the ID in the form B path that you created and fetch it in the form.

2. Don't use 2 forms, rather have two fragments. Create button to submit in fragment 1 keeping the fragment 2 hidden, on callback hide the frag1 and set the field of fragment 2(form B in your case).

sankarr26533925
Level 3
Level 3

@Mayank_Gandhi

 

Thanks for your response.

 

In the servlet where you are handling the request/response, append the ID in the form B path that you created and fetch it in the form.

 

==>I assume that ID should be added as query param in form B path. I want to show this ID in textbox(added in form fragment in Form B.

==> In this scenario, where we have to read this ID value and display in textbox. Is it from rule editor or some other place?) ]

 

 

2. Don't use 2 forms, rather have two fragments. Create button to submit in fragment 1 keeping the fragment 2 hidden, on callback hide the frag1 and set the field of fragment 2(form B in your case).

 

==>Form A is initial dialog for creating more than 10 different forms. I can't add that Form A and Form B as single fragment in single form because Form B(contains more than 8 childpanels) will be different for 10 different forms.

 

==> For example 

Mayank_Gandhi
Community Advisor
Community Advisor
Regarding the 2nd question: You do not need initial dialog and the mail form to be in same fragment. Just keep them separate but hide them based on requirement. Your Form A is like a re-usable fragment and will remain as is.
ksetti
Correct answer by
Level 1
Level 1

Hi Sankar, 

 

If you haven't get the answer, you can try below. Just have this code in your submit servlet. 

import com.adobe.aemds.guide.servlet.GuideSubmitServlet;

 

Map<String, String> redirectParameters = GuideSubmitServlet.getRedirectParameters(slingRequest);

redirectParameters.put("responseId", responseId);

GuideSubmitServlet.setRedirectParameters(slingRequest, redirectParameters);

 

You can capture this value using javascript callback function in submit button rule and pass this value to formB

guideBridge.submit({
  error : function (guideResultObject) {//log message},
  success : function (guideResultObject) {
alert(guideResultObject.data.responseId);
}
});

 

View solution in original post