2016-05-19 5 views
0

特定の動的データでjson応答を返すことができるようにします。私はそうすることにかかわる手順を理解するのに苦労している。これは、CQが自動的に行うノードの詳細を取得するためではありません。Adob​​e CQでcustome jsonレスポンスを作成するにはどうすればよいですか?

目標は、JSONレスポンスが非常に HTTPのような要求に戻ってきたことです。///def/getMyInfo.json

+0

カスタム[Sling servlet](https://sling.apache.org/documentation/the-sling-engine/servlets.html)を書くことができます。 – Abhishek

+0

私はコンポーネントでそれをやりたいのですが。非常に単純なjsonレスポンスが頻繁に変更される可能性があります。私は毎回コードをコンパイルして展開したいとは思っていません。 – treefrog

答えて

0

私は、JCR -withoutより、このようにアクセスしたい:コンテンツ

http://localhost:4502/content/geometrixx/en/mycomponentinstance.json

私はスリングリソースコンポーネントmycomponentinstanceを持っていたページmycomponentinstanceを、作成しました。コンポーネントには、jsonレスポンスを含むファイルmycomponentinstance.json.jspがあります。それはPage.jsonも持っています。私はそれを認識するために重要だったと思います。

1

あなたはコンポーネントレベルでそれをしたい場合は、あなたがそれを行う方法がありますコンポーネントにJSON.jspを作成します。 JSPで

あなたはJSONにアクセスしたい場合は、それがよりになりたい場合は、あなたが http://localhost:4502/content/geometrixx/en/jcr:content/mycomponentinstance.json

のようなものに行くことにアクセスしたい、その後

<%@ page import="org.apache.sling.commons.json.io.*" %> 
<%@include file="/libs/foundation/global.jsp" %> 
<% 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("utf-8"); 

    JSONWriter writer = new JSONWriter(response.getWriter()); 
    writer.object(); 
    writer.key("Name"); 
    writer.value("English"); 
    writer.key("Code"); 
    writer.value("en"); 
    writer.endObject(); 
%> 

のようなものを持っているでしょうJSON.jspを通常のコンポーネントではなくページ・コンポーネントに追加すると、代わりに http://localhost:4502/content/geometrixx/en/jcr:content.jsonにコールする必要があります。

関連する問題