2015-09-21 18 views
8

Tôi muốn biết liệu có cách nào để có được kết xuất HTML được hiển thị của nút Trang trong CQ5 mà không nhấn vào url thực sự hay không. Tôi có nút Trang và tôi muốn nhận được kết xuất HTML được hiển thị của nút Trang đó theo lập trình trong java và lưu nó trong một chuỗi mà không cần nhấn vào URL của trang.Nhận đầu ra html từ nút jcr trong CQ5

Bất kỳ trợ giúp nào được đánh giá cao, cảm ơn trước!

Trả lời

4

Tự bản thân nó chỉ là dữ liệu. Sling framework chịu trách nhiệm cho việc render dữ liệu này. Nó sử dụng một loạt các quy tắc để xác định cách dữ liệu này sẽ được hiển thị. Sling Script Resolution Cheet Sheet Vì Sling là khuôn khổ web, nó hiển thị dữ liệu thông qua các yêu cầu http.

Để thi đua yêu cầu này trong CQ/AEM Tôi đề nghị để sử dụng dịch vụ com.day.cq.contentsync.handler.util.RequestResponseFactory

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()); 
} 

Hy vọng nó giúp.

+0

Chính xác những gì tôi đang tìm kiếm ..! Bạn đã làm ngày hôm nay của tôi trở nên thú vị! Cảm ơn rất nhiều....! – Rakesh

2

Bạn có thể truy cập nút bằng cách cung cấp chế độ xem chính xác. Khi bạn cần hiển thị chế độ xem html, hãy sử dụng .html với nút của bạn để hiển thị html. Vì vậy, đường dẫn nút của bạn sẽ là

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

Bây giờ để đọc html theo lập trình, bạn có thể yêu cầu http đến đường dẫn trên khỏi đường dẫn của bạn và lưu phản hồi dưới dạng chuỗi.

+0

Cảm ơn! Tôi sẽ thử cái này. – Rakesh

+0

Điều này không hiệu quả đối với tôi. – Rakesh

+0

Hãy giải thích những gì bạn đã làm, bởi vì khái niệm khôn ngoan cách tiếp cận này nên làm việc cho usecase của bạn. –

Các vấn đề liên quan