title修改 - jquery抓取網頁內容




在jsp中創建一個json對象,並用jQuery來使用它 (3)

我創建了一個JSP應用程序,它根據用戶搜索(使用lucene)獲取結果。 我將結果存儲在Bean中。

我也使用JQuery的Ajax來顯示結果。

$.ajax({
    url : "search.jsp",
    data : "search=test",
    success : function(html) {
        ("#search_results").hide().html(html).fadeIn(1500);
    }
});

search.jsp的

for (int i = 0; i < size; i++) {
    out.println(searchResult.get(i).getHTML());
}

這工作正常,但是我想改變它,所以它返回一個JSON對像到JQuery,然後讓JQuery解析對象並顯示結果

我不知道如何做到這一點,因為我是JSON對象和JSP的新手。 我可以做一些類似的事情

JSONObject json = new JSONObject();
json.put("title", "TITLE_TEST");
json.put("link", "LINK_TEST");

但我不知道如何返回json到jquery,然後讓jquery解析對象

任何幫助表示讚賞:)


最終通過http傳播。 所以,創建一個json對像不會有太大的幫助。

我不是一個Java專家,但你可以創建一個簡單的字符串匹配的JSON結構,然後解析它在客戶端。

喜歡

string s =  { "title": "testTitle", "link" : "testLink"}
out.println(s)

這將做的伎倆。

編輯:通過看到達林的答案,

把這個包括在你的java代碼中,

<%@page contentType="application/json; charset=UTF-8"%>

這裡有一個例子,你可以看看。 基本上你的JSP頁面可能看起來像這樣:

<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="org.json.simple.JSONObject"%>
<%
    JSONObject json = new JSONObject();
    json.put("title", "TITLE_TEST");
    json.put("link", "LINK_TEST");
    out.print(json);
    out.flush();
%>

並在客戶端:

$.ajax({
    url : 'search.jsp',
    data : { search: 'test' },
    dataType: 'json',
    success : function(json) {
        alert(json.title);
    }
});

這裡還有更多的例子


很簡單的方法是使用taglib - json,像這樣:

<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>

那麼你可以使用json標籤來創建它:

<json:array items="${someObject.someList}" var="oneRow">
<json:object>
    <json:property name="username" value="${oneRow.username}"/>
    <json:property name="password" value="${oneRow.password}"/>
    <json:property name="email" value="${oneRow.email}"/>
</json:object>

在jsp上面執行的時候會O / P如下:

[
 {"username":"varun","password":"*****","email":"[email protected]"},
 {"username":"ved","password":"*****","email":"[email protected]"},
 {"username":"von","password":"*****","email":"[email protected]"}
]

那是所有的人!







jsp