2012-01-13 65 views
0

我知道該怎麼做:DisplayTag - 通過Ajax創建第一頁

過有規律的請求(不阿賈克斯)提交搜索表單,並在新的結果頁面,顯示第一頁(由DisplayTag創建)可以通過Ajax請求進行分頁(使用DisplayTag啓用Ajax我使用jQuery plagin displaytag-ajax)。

我想做什麼,但不知道如何:

我要創建的表(根據提交搜索表單),阿賈克斯的第一頁。即,我想通過Ajax提交搜索表單,並在搜索表單的同一個網頁中創建Ajax可分頁結果表的第一頁,而不加載新的網頁。

任何想法如何實現?

回答

1

您可以使用jQuery load函數將AJAX請求對給定URL的響應加載到div中,並且可以使用serialize函數將搜索表單的輸入集合轉換爲查詢字符串。用於生成表的第一頁應該只生成表

JSP頁面:

<%@ page ...%> 
<%@ taglib ...%> 
<display:table> 
    ... 
</display:table> 
+0

我沒有發送(通過Ajax)搜索表單到服務器的問題。但是您認爲來自Ajax請求的響應是由DisplayTag創建的HTML字符串。但是現在我的java代碼只創建一個Java對象列表,顯示在第一個表格頁面上。你沒有解釋我如何轉換(在Ajax請求期間)這個列表到一個HTML字符串 - 我怎麼在我的Java代碼中做類似'Sting tableHTML = DisplayTag.createTableHTML(resultList);'' – rapt 2012-01-13 13:44:42

+0

你這樣做就像你做一個標準的請求。發送到JSP,這個JSP將使用displaytag生成HTML表(並且只有HTML表)。這個HTML表格將在響應中發送,並且JavaScript將把表格包含到DOM中。 – 2012-01-13 13:46:22

+0

這是有道理的。但我不確定派生後Java代碼如何抓取生成的HTML表格。您能否爲此提供一些示例代碼? – rapt 2012-01-13 13:52:54

1

使用jQuery.post()通過AJAX提交表單。當收到響應後,remove()從DOM表格和add()的響應中。

+0

這個問題是我收到的響應。我的java代碼(從數據庫中)獲取我想要在第一個表格頁面上顯示的對象列表。但根據你的回答,有一種方法可以使用這個列表來創建一個HTML表格(基於列表中的DisplayTag標籤在我的JSP文件中) - DisplayTag在我的請求中爲我做這個翻譯,但是我沒有知道如何在Ajax請求期間進行這種翻譯 - 顯然,我將不得不從Java代碼(?)訪問JSP代碼 - 您是否知道如何執行此操作?或者我在這裏錯過了一些東西。 – rapt 2012-01-13 13:34:11

+2

對於服務器,AJAX請求和常規請求是相同的事情。只需像對待常規請求一樣生成displaytag表即可。唯一的區別是由AJAX請求生成的HTML應該只包含表格,而不是表格之前和之後的所有HTML代碼。 – 2012-01-13 13:44:22