我對JSP,jQuery和AJAX相當陌生。我有一個JSP,它使用基於會話中List變量中的值填充的表。代碼在這裏:從會話變量更新html表格
<table id="someData" class="display" width="95%">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<c:forEach var="var" items="${sessionVar}">
<tr>
<td><c:out value="${var.ID}" /></td>
<td><c:out value="${var.name}" /></td>
<td><c:if test="${var.gender=='M'}">
<c:out value="Male" />
</c:if> <c:if test="${var.dispositionCD=='F'}">
<c:out value="Female" />
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
我使用阿賈克斯調用控制器,並可能導致更改sessionVar變量。可以添加額外的人員,可以刪除一些人員,也可以更改一些姓名,或者根本沒有任何更改。控制器只會刷新會話中的List變量。這裏是我的Ajax調用,當用戶輸入一些數據,並按下一個按鈕運行:
$.ajax({
type : "POST",
url : urlText,
data : 'testdata',
dataType : 'json',
success : function(data,textStatus) {
$('#errormessage').text(data);
},
error : function() {
$("#errormessage").text("Error while processing request..Please try again");
}
});
因此,一旦在會議列表變量被更新,如何更新在HTML表中的數據?我已經在JSP和jQuery上工作了大約一個月,所以如果這看起來像是業餘時間,那麼就輕鬆一點。 :)
我在JSP不是專家,但基本的問題,我看到的是你最初的渲染在服務器端完成,但你要更新客戶端的表格,不需要刷新頁面, 那是對的嗎?如果所有的渲染都是服務器端或客戶端,那麼將會更簡單。 –
如果我是正確的,你想用Javascript更新表格,你可以發佈一個AJAX響應的樣本嗎? –
對於初始渲染,控制器正在使用request.getSession(「false」)。setAttribute(「sessionVar」,listOfPeopleToShow)。然後,在JSP上,我使用c taglib遍歷列表並填充表格。這真的是客戶端,但使用放置在服務器上的會話列表。現在我想要做的就是調用控制器,運行一個函數,它可能會或可能不會更新數據,並將數據讀入新的ArrayList,將其放入會話中,從ajax調用返回,並在'成功'函數,因爲它的數據可能已經改變,所以更新表格。 – Rettogo