2012-05-24 59 views
0

如何使用AJAX,JQuery和Spring MVC呈現視圖。如何使用AJAX,JQuery和Spring MVC呈現視圖

什麼是最好的設計模型,我應該使用AJAX,JQuery和Web項目中的Spring MVC渲染視圖。

在過去,我做了Spring/Java編程,並且讓每個屏幕都是一個JSP文件。所以每次我需要它來顯示一個新的屏幕時,我都會調用服務器並加載一個新的JSP。

使用Ajax和JQuery

現在

我可以有JSP頁面,然後使用jQuery來改變與資料覈實屏幕,使它看起來像新的網頁而不去服務器,唯一的問題是我如何顯示這個??任何簡單的方法

我在想,使用Ajax和JQuery將使我減少JSP頁面的數量,我必須擁有,但我不想擁有一個文件,其中包含很多javascript,並且很難渲染與JavaScript的屏幕。

我想它也許有使用AJAX也需要它的屏幕加載的diffent部分,但讓他們在屏幕上有diffent的JSP

回答

2

如果你想在你的web應用中包含ajax調用,你有幾個基本的選擇。您將發出ajax請求,並獲取響應。這種格式會有什麼反應?

有兩種很常見的選擇:

  1. JSON,你再使用來填充你的頁面的元素。你根本不需要一個JSP來完成這個任務,你的服務器端的Spring控制器只需要以JSON格式將你的頁面需要的數據流化。我建議GSON serializer,但也有其他幾個。
  2. HTML片段,然後將填充到div(或類似)中。而不是在這裏返回一個完整的頁面,你只是返回頁面的一部分,然後你的JavaScript將顯示。如果您希望在服務器端處理視圖渲染/邏輯,則此選項更好。

第二種方法是你在你的問題中描述的。在人們這樣做的意義上說,這是一種有效的方法,但我通常更喜歡讓我的異步調用使用JSON,並在源頁面上包含視圖邏輯,並在必要時隱藏視圖。

要回答你關於隱藏和顯示DIV元素的問題,答案是使用jQuery的toggle()函數。

0

應該看看到Backbone.js的

這是一個JavaScript框架依靠RESTful服務來提供持久性和抓取。

框架本身設計得非常好,並從模型層分離出來的觀點邏輯等

如果你選擇的基於脫我可能會建議不同的方法不同的看法加載信息的JSP的解決方案。而不是你的控制器返回jsp視圖,而是返回JSON,並讓ajax呈現json。渲染這些信息可以通過一個模板系統(如handlebar)非常乾淨地完成,並且可以減少代碼混亂。

0

請勿使用任何JSP/JSTL,並將頁面保持爲乾淨的HTML和CSS。使用像360這樣的線框來創建頁面模板。您可以根據需要使用此線框來放置視圖。

然後爲這些視圖中的每一個分配<div id="viewlet1"></div>

加載一個Java腳本文件,其中包含每個viewletids對rest函數的綁定。例如:

var viewlets=[ ["#custmeraddress","/customer/address"],["..","...."],...] 

在DocumentReady,綁定休息響應於各自的位置,例如:

$(viewlets[0]).load(viewlets[1]); 

即從每個其餘功能到其相應的位置獲取的HTML。

其餘每個函數都只能產生XML。他們不得生產任何HTML。每個rest函數在返回內容之前都應該使用XSL將XML轉換爲HTML。

保留一組主要的XSL文件和函數特定包括將任何其餘生成的XML轉換爲HTML。

所有其餘函數都應該將數據訪問委託給主DAO。主DAO本身應該不知道生產者和消費者,它應該只是調解。將主DAO使用的所有SQL保留在bean規範或靜態XML文件中。每個查詢都必須位於此查詢庫文件中,以便查詢結果可以由緩存管理器緩存。

根據rest函數,主DAO查找所需的XML,應用請求對象中的參數,創建XML片段並返回到其餘函數。

主DAO也可以是緩存管理器的使用者。高速緩存管理器攔截所有讀取和寫入,分析SQL並驗證/無效查詢庫中任何查詢的高速緩存映像。