2015-08-27 130 views
-1

我想調用java類方法在我的JavaScript頁面:調用Java方法

我的Java類方法:

public static String getAccessToken() { 
    //OAuth2Details oauthDetails = new OAuth2Details(); 
    System.out.println("Test OAuth"); 
    HttpPost post = new HttpPost("vvv");} 

我想,我的JSP是:

<% System.out.println("inside java");%> 
<%OAuthUtils ex = new OAuthUtils(); %> 
<%=ex.getAccessToken()%> 

但是,它返回null.Could任何人都可以請建議我,我應該怎麼稱呼方法在JavaScript

+3

哪裏是JavaScript? – realUser404

+3

該方法甚至沒有編譯,你得到'null'的奇怪。 – BackSlash

+1

如果返回類型是'String'爲什麼在jsp中使用java代碼?你爲什麼不打個阿賈克斯電話? –

回答

1

基本知識,使用JQuery會是這樣:

$.get("/mapping/url/getAccessToken",{ }).done(function(data) { 
    if (data != null) { 
     // do your stuff 
    } else { 
     // show error message or whatever 
    } 
}); 

當然,要得到正確的結果,你必須告訴Java來映射這種方法是通過AJAX電話訪問。

使用Spring @RequestMapping註釋:

@RequestMapping(value = "/mapping/url/getAccessToken") 
public String getAccessToken() { 
    //OAuth2Details oauthDetails = new OAuth2Details(); 
    System.out.println("Test OAuth"); 
    HttpPost post = new HttpPost("vvv"); 

    if (success) { 
     return "what you need"; 
    } else { 
     return null; 
    } 
} 

如果你沒有春天在你的應用程序,擴展HttpRequest::doGet()
Check here a tutorial of AJAX-HttpRequest call


ADD-ON

爲什麼沒有腳本,應該寫在JSP中 - Java的
這就是爲什麼要避免在JSP中使用scriplets:

  • JSP小腳本降低代碼的可維護性和可讀性,因此難以閱讀和做出進一步的修改。
  • JSP Scriptlets不能被重新使用。
  • JSP Scriptlets不是單元可測試的。
  • JSP Scriplets將演示文稿與極易出錯的業務邏輯合併在一起。
  • 最後但並非最不重要的一點,如果JSP Scriptlets引發異常,它將打破整個頁面,並且不會在處理中進一步移動。

From this article