2013-09-30 116 views
0

如何通過ajax將json值從jsp傳遞給javascript作爲對象?
我不能使用JSP全局JS變量,因爲這會導致JSON內容是在頁面的源通過ajax從jsp傳遞json對象到javascript

這裏看到的是,我希望實現的方案:

  • JSP的URL中打開瀏覽器。正在在小腳本創建coverted以JSON格式
  • JSON是「送」給JavaScript作爲對象

從上面的場景

  • 的數據,我明白了JavaScript必須啓動Ajax調用JSP中。 這個問題,該JSP代碼將被調用2次:

    • 當頁面在瀏覽器中打開 - 數據準備在每個AJAX調用
    • 相同的代碼將會再次調用

    約束:沒有jquery,沒有其他庫,沒有servlet,沒有額外的jsps。 :(

    編輯:

    還有另外一個問題,我需要通過多個 JSON對象的JavaScript
    我將無法與response.getWriter().write();

    我不認爲串聯做到這一點。所有的json對象和發送都是正確的解決方案

    在javascript中對接收到的對象進行解析http.responseText將是壓倒性的

  • +0

    你可以通過一個參數來區分url和ajax的情況。 – alkis

    +0

    當你說沒有servlet時,jsp最終編譯成一個servlet。 – cherit

    +0

    @Tito Cheriachan我知道,我的意思是沒有引入任何其他的servlets :) – yuris

    回答

    0

    爲什麼你需要ajax在這裏?如果你知道你需要從服務器有些東西填充到JSP頁面,您可以做到這一點通過scriplets本身:

    EX

    <%@ page import="com.mypackage.PersonDAO" %> 
    <html> 
    <body> 
    <table> 
    <th>Name</th><th>Email</th><th>Contact</th> 
    
    <% 
    List<Person> myList = PersonDAO.getAllPersons(); 
    for(Person person:myList) 
    { 
    
    %> 
    <tr> 
    <td><%=person.getName()%></td> 
    <td><%=person.getEmail()%></td> 
    <td><%=person.getContact()%></td> 
    </tr> 
    <%}%> 
    </table> 
    </body> 
    </html> 
    

    這是一個非常簡單的例子。您可以使用JSTL做更復雜的事情.. :)

    所以沒有jQuery的,沒有Servlet的,沒有阿賈克斯並沒有多餘的JSP的:)

    UPDATE

    既然你想在你的數據在頁面加載前你可以使用jQuery的holdReady()方法。

    看到,但所有現代的瀏覽器開發者工具,如螢火蟲爲Mozilla,如此作出的AJAX調用將被他們困住。你可以保護他們的唯一方法是我的加密他們..這將使你的事情複雜......如果你可以解釋你想要實現的場景可能是我可以想出它..

    +0

    正如我所說,我需要將數據傳遞給javascript函數。 – yuris

    +0

    將數據傳遞給javascript函數後,您將如何處理數據?請參閱..目前您的問題並不需要將數據傳遞給javascript函數.. – DarkHorse

    +0

    @yuris詳細解釋您需要解決的實際問題,而不僅僅是您想如何解決它。這可能是因爲你選擇的方法不是最有效率的,並且有一個更簡單的方法來做到這一點。例如,如果JSON在頁面加載和AJAX調用之間不會發生變化,則不需要進行任何AJAX調用。 –