CQ5

2015-09-21 12 views
8

'daki bir jcr düğümünden html çıktısı alın CQ5'te bir sayfa düğümünün işlenen HTML çıktısını gerçek URL'ye çarpmadan elde etmek için bir yol olup olmadığını öğrenmek istedim. Sayfa düğümüne sahibim ve bu Sayfa düğümünün oluşturulmuş HTML çıktısını javada programlı olarak almak ve sayfa URL'sine çarpmadan bir dizeye saklamak istiyorum.CQ5

Her türlü yardım için şimdiden teşekkür ederiz!

cevap

4

Düğümün kendisi sadece bir veri. Bu verilerin oluşturulmasından sorumlu sapan çerçevesi. Bu verinin nasıl oluşturulacağını belirlemek için bir takım kurallar kullanır. Sling Script Resolution Cheet Sheet Sling web çerçevesi olduğundan, http istekleri üzerinden veri oluşturur.

Ben

import org.apache.sling.engine.SlingRequestProcessor; 
import com.day.cq.contentsync.handler.util.RequestResponseFactory; 

@Reference 
private RequestResponseFactory requestResponseFactory; 

@Reference 
private SlingRequestProcessor requestProcessor; 

public String doStuff(){ 
    HttpServletRequest request = requestResponseFactory.createRequest("GET", "/path/to/your/node.html"); 
    request.setAttribute(WCMMode.REQUEST_ATTRIBUTE_NAME, WCMMode.DISABLED); 

    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    HttpServletResponse response = requestResponseFactory.createResponse(out); 

    requestProcessor.processRequest(request, response, resourceResolver);   
    return out.toString(response.getCharacterEncoding()); 
} 

Umarım yardımcı olur com.day.cq.contentsync.handler.util.RequestResponseFactory servisi kullanmaya önermek CQ/AEM bu talebi taklit etmek.

+0

'a bıraktığım tam olarak ne arıyordum .. Sadece günümü yaptın! Çok teşekkürler....! – Rakesh

2

Doğru bir görünüm sağlayarak düğüme erişebilirsiniz. İşlenmiş html görünümüne ihtiyaç duyduğunuzdan, html elde etmek için düğümünüzle .html kullanın. Yani düğüm yolu

/content/path/to/page/jcr:content/par/node_name.html 

Şimdi html programlı okumak olacak, kendi yolundan yukarıdaki yoluna bir http isteği yapmak ve dize olarak tepkisini kaydedebilirsiniz.

+0

Teşekkürler! Bunu deneyeceğim. – Rakesh

+0

Bu benim için çalışmadı. – Rakesh

+0

Lütfen ne yaptığınızı açıklayın, çünkü konsept açısından bu yaklaşım sizin usecase'iniz için çalışmalıdır. –