Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Retrieve the HTML contents of a cq:Page

Avatar

Level 2

Hi,

Is there any way to retrieve the HTML contents of a cq:Page without using external jars/bundles.???

1 Accepted Solution

Avatar

Correct answer by
Level 2

See if request processor can help you achieve this. 

Sample Snippet would be

 
  1. SlingRequestProcessor requestProcessor = sling.getService(SlingRequestProcessor.class);
  2. RequestResponseFactory requestResponseFactory = sling.getService(RequestResponseFactory.class);
  3. HttpServletRequest request = requestResponseFactory.createRequest("GET", "/content/geometrixx-media/en/mycustompage.html");
  4.  
  5. ByteArrayOutputStream out = new ByteArrayOutputStream();
  6.  
  7. HttpServletResponse response = requestResponseFactory.createResponse(out);
  8. requestProcessor.processRequest(request, response, resourceResolver);
  9.  
  10. html = new String(out.toByteArray(), "UTF-8");
  11.  

View solution in original post

8 Replies

Avatar

Level 7

Hi,
can you explain more what you are trying to do here ?

/Johan

Avatar

Correct answer by
Level 2

See if request processor can help you achieve this. 

Sample Snippet would be

 
  1. SlingRequestProcessor requestProcessor = sling.getService(SlingRequestProcessor.class);
  2. RequestResponseFactory requestResponseFactory = sling.getService(RequestResponseFactory.class);
  3. HttpServletRequest request = requestResponseFactory.createRequest("GET", "/content/geometrixx-media/en/mycustompage.html");
  4.  
  5. ByteArrayOutputStream out = new ByteArrayOutputStream();
  6.  
  7. HttpServletResponse response = requestResponseFactory.createResponse(out);
  8. requestProcessor.processRequest(request, response, resourceResolver);
  9.  
  10. html = new String(out.toByteArray(), "UTF-8");
  11.  

Avatar

Level 2

gnishant wrote...

See if request processor can help you achieve this. 

Sample Snippet would be

 
  1. SlingRequestProcessor requestProcessor = sling.getService(SlingRequestProcessor.class);
  2. RequestResponseFactory requestResponseFactory = sling.getService(RequestResponseFactory.class);
  3. HttpServletRequest request = requestResponseFactory.createRequest("GET", "/content/geometrixx-media/en/mycustompage.html");
  4.  
  5. ByteArrayOutputStream out = new ByteArrayOutputStream();
  6.  
  7. HttpServletResponse response = requestResponseFactory.createResponse(out);
  8. requestProcessor.processRequest(request, response, resourceResolver);
  9.  
  10. html = new String(out.toByteArray(), "UTF-8");
  11.  

 

Thnaks a lot for the snipet.

Avatar

Level 2

Hi,

I have a cq:Page i just need to get the HTML format of that page in a string.

Say /content/geometrixx/en.html I need to get the value of the html in a string.

I dont want to use" URL url = new URL(url for the page);" or any other methods which basically returns the html of the "url" sent.

Does cq provide any api's or methods which does the same.

Avatar

Level 10

What you planning to do with retrieved html content?  Send an email OR embed in other page OR store in local file etc..   Explain the exact use case.

Avatar

Level 3

Hi,

I have similar requirement like pulling complete page details and adding same into email with same format (including images and RTE content). 

Could you please let me know how this can be done ?

Thanks,

Hari

Avatar

Level 2

Hi Sham,

I am trying to send the html contents through mail.

Avatar

Level 10

Please do not attach new questions on old threads. Start a new question. You will increase your chances of getting a response.