[英]Request JSON object from server?
我在服務器端有一個JSON對象:
String jsonText = JSONValue.toJSONString(users);
我想將它發送到客戶端以用於javascript函數,該怎么做?
我在沒有其他庫的情況下將JSF 2與Pure JavaScript一起使用。
在HTTP中,服務器不會向客戶端發送任何內容。 客戶端使用請求請求某些資源,響應包含資源。
使JavaScript函數向服務器發送AJAX請求,並使服務器在響應中使用此JSON字符串進行應答(通過將JSON字符串寫入響應編寫器)。
請參閱http://api.jquery.com/jQuery.getJSON/以從JavaScript獲取JSON字符串。 服務器代碼很簡單
response.getWriter().print(jsonText);
最簡單的方法是讓JSF在同一視圖中將JSON對象的字符串表示形式打印為JS變量:
<script>var users = #{bean.usersAsJson};</script>
但是, 正確的方法是為此使用完全有價值的JSON Web服務。 JSF是基於組件的MVC框架,而不是JSON Web服務。 為此,Java EE堆棧提供了JAX-RS API。 長話短說: Servlet vs RESTful 。 最好結合使用jQuery或任何JS框架,它能夠發送Ajax請求並基本上在oneliner中操作HTML DOM樹。 您只需要考慮將其與JSF結合使用時,只能用於純演示 。
瀏覽器必須請求它,即該字符串必須位於請求處理鏈中的某個位置。 將響應設置為該字符串,瀏覽器將收到它。
我想你想說響應json字符串。 可以通過jQuery函數getJSON完成。 它將獲取json字符串並將其解析為inti哈希,然后必須根據需要對其進行處理。 API文檔
發送您的json對象進行響應,並在javascript中獲取響應。 使用eval函數評估json對象。
var jsonObject = eval('(' + request.responseText + ')');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.