2012-01-28 9 views
2

JSPアプリケーションを作成しました。このアプリケーションは、ユーザー検索(luceneを使用)に基づいて結果を取得しました。私は結果をBeanに保存します。jspでjsonオブジェクトを作成し、JQueryで使用する

また、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()); 
} 

これが正常に動作している、しかし私はそれがjQueryのにJSONオブジェクトを返すので、それを変更したい、その後、jQueryのオブジェクトを解析し、その結果

を表示してみましょう

私はJSONオブジェクトやJSPを初めて使うので、これをどうやって行うのかよくわかりません。 私はおそらく

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

ような何かを行うことができますが、私はここであなたがかかる場合がありますan exampleだすべてのヘルプは高く評価され

:)

+0

[ServletからJavascript/JSPページへのJSONレスポンスの返却]の可能な複製(http://stackoverflow.com/questions/6154845/returning-json-response-from-servlet-to-javascript-jsp-page) – Rafay

答えて

7

をオブジェクト解析jqueryの聞かせて、その後のjQueryにjsonを返す方法を知りません見る。

<%@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(); 
%> 

とクライアント上:基本的には、JSPページは次のようになります

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

そして、ここではさらにmore examplesです。

+1

大きな感謝をこめて、jQuery.parseJSON(json)を配置しなければなりませんでした。しかし成功関数で。ありがとう:) – Decrypter

+1

@Decrypter、text/htmlの代わりにJSPページの 'Content-Type'レスポンスヘッダーを' application/json'に設定して、それをする必要はありません。 –

2

最終的にはhttpで送信されます。だから、jsonオブジェクトを作成することは大いに役立ちません。

私はJavaのエキスパートではありませんが、json構造と一致する単純な文字列を作成してクライアント側で解析することができます。

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

のようにこれはトリックを行います。

編集:ダーリンの答えを見て、

​​
1

これは私のために働いた、あなたのJavaコードでこれを含める:

私はeasyui-データグリッドを養うためにそれを使用し
%> 
String json = "{ \"title\": \"testTitle\", \"link\" : \"testLink\"}"; 
response.getWriter().write(json); 
response.getWriter().flush(); 
response.getWriter().close(); 
<% 

response.getWriter().write(json)が働いていましたが、out.println(json)は例外ではありませんでした。また、内部引用符も二重でなければならないので、 `\ 'でそれらをマスクする必要があります。

1

かなり単純なアプローチは、タグライブラリを使用することです - このようなJSON何か:次に、あなたは、リストからそれを作成するために、JSONタグを使用することができます

<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/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]"} 
] 

すべての皆さん!

関連する問題