2017-02-13 24 views
1

AEMのUI開発の一環として、私はSling ServletとJqueryの1つを書いています。私はサーブレットを使用してJqueryを使用し、データをサーブレットからJqueryに読み込む必要がありますか?どのようなヘルプ?SlingからJqueryにデータを読み取る方法は?

私のjQuery:

window.location.href = Granite.HTTP.externalize("/bin/dam/TimelineVersion"); 

var val=""; // Here I need to Read String Data from Servlet 
alert(val); 

マイスリングサーブレット:

あなたが実際に応答書き出すためにサーブレットをリファクタリングする必要が
@SlingServlet(paths="/bin/dam/TimelineVersion", methods = "GET", metatype=true) 
@Properties({ 
     @Property(name = "service.pid", value = "com.hpe.dam.author.support.servlet.TimelineVersion", propertyPrivate = false), 
     @Property(name = "service.vendor", value = "HPE", propertyPrivate = false) }) 
public class TimelineVersion extends SlingSafeMethodsServlet{ 

    @Reference 
    private SlingRepository repository; 

    public void bindRepository(SlingRepository repository) { 
     this.repository = repository; 
    } 

    @Override 
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { 

     try { 
      String Data="This value i have to get in Jquery"; 
     } catch (Exception e) { 
     } 
    } 
} 

答えて

1

(私はあなたをお勧めしますが、ブラウザにJSONを送信):

@SlingServlet(paths="/bin/dam/TimelineVersion", methods = "GET", metatype=true) 
@Properties({ 
     @Property(name = "service.pid", value = "com.hpe.dam.author.support.servlet.TimelineVersion", propertyPrivate = false), 
     @Property(name = "service.vendor", value = "HPE", propertyPrivate = false) }) 
public class TimelineVersionServlet extends SlingSafeMethodsServlet { 

    @Reference 
    private SlingRepository repository; 

    private static Logger log = LoggerFactory.getLogger(TimelineVersionServlet.class); 

    @Override 
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { 
     try { 
      String data = "This value i have to get in Jquery"; 
      response.getWriter().write(data); 
     } catch (Exception e) { 
      log.error(e); // handle appropriately 
     } 
    } 
} 

あなたのJavascriptには次のように入力してください:

$.get('/bin/dam/TimelineVersion') 
    .success(function(data) { 
     console.log(data); 
    }) 
    .error(function() { 
     console.log('[ERROR] Could not perform request'); 
    }); 

はここスリングサーブレットの実施例は、jQueryの使用と呼ばれています:その作業:-) https://github.com/mickleroy/aem-ajax-search

+0

おかげで、どのような方法は、サーブレットにjqueryのから値を取得していますか? –

+0

@AsnaRaheemこの回答があなたの問題を解決した場合は、それを受け入れることを検討してください(受け入れられたと回答をマークするには、回答の横にあるチェックマークをクリックして灰色で塗りつぶしにします) – mickleroy

+0

$ .get( '/ bin/dam /これと一緒にサーブレット –

関連する問題