我有一個標準的tomcat web應用程序,用於查詢MySQL數據庫並將結果從servlet發送回JSP。 JSP顯示沒有傳統數據表的結果,而是在加載時使用腳本將結果填入各自的HTML表(每個結果行一個表)。如何對未填充到JSP頁面中的標準結果表中的數據庫結果進行排序
這裏是一個粗略的代碼片段,以顯示我是如何填充的JSP頁面:
<html>
<body>
...
<%
String[][] results = ((String[][])session.getAttribute("results"));
for (int i = 0; i < results.length; i++)
{
String[] rowResult = (String[])results[i];
String tableId = "table_" + i;
String attribOne = rowResult[0];
String attribTwo = rowResult[1];
%>
<table id="<%= tableId %>" >
<script>
var table = document.getElementById("<%= tableId %>");
table.setAttribute("attribOne", "<%= attribOne %>");
table.setAttribute("attribTwo", "<%= attribTwo %>");
</script>
...
</table>
<%
}
%>
</body>
</html>
我想知道重新排序(排序)我的成果的最佳方式,他們已經經過最初在頁面上填充。頁面頂部有一個下拉菜單,其值與每個要排序的表上的屬性相對應。實際上,我需要根據用戶的排序選擇來移動表格。
我已經考慮了以下選項:從Servlet來JSP頁面
傳遞多個結果集,並重新如果選擇了不同種類的屬性(刷新?)的頁面。缺點這種方法很多。我必須在數據庫中運行多個數據庫查詢(代價高昂),將相同結果集的多個副本返回給JSP(效率低下),並且可能必須刷新頁面(煩人),而只想重新排列結果
使用JavaScript/jQuery重新排列頁面上的表格。這可能很難實現,可能需要很長時間來處理/重新顯示。我不想讓用戶長時間等待結果重新排序。
如果您有任何人可以評論這些或提供任何其他建議如何處理,我將不勝感激。
-Bob
我仍然會建議使用一些JavaScript/jQuery的圖書館的/插件(如[的tablesorter(http://tablesorter.com/docs/)爲例)頁面上結果進行排序。這樣對速度影響最小。 **他們不是很難使用,他們是快速和可配置**。但是,當然,您需要使用HTML表格。 – informatik01