有点背景知识: (我是学生,所以请耐心等待。) 使用jQuery,我已经为REST Web服务制定了一个Ajax PUT请求。
$.ajax({
type: "PUT",
url: putURI,
dataType: "json",
cache: false,
headers: {
Accept : "application/json; charset=utf-8",
"Content-Type": "application/json; charset=utf-8"
},
success: function (){
$.getJSON(baseURI, function(data){
$.each(data, function (i, task) {
alert(task.description);
row = "<tr><td id='" + task.description + "'></td></tr>";
$("#tasksTableBody tr:last").after(row);
});
});
},
error: function (request, status, error) {
alert(request.responseText);
alert(status);
alert(error);
}
});
如果可能,我想将响应重新路由到我的JSP,其中有EL和jstl来创建表的行,正好在我想要的位置。
<tbody id="tasksTableBody">
<core:forEach items="${allTasks}" var="task">
<tr>
<td id="desc${task.id}">
${task.description}
</td>
<f:parseDate value="${duedate}" pattern="yyyy-MM-dd" var="duedate" />
<td id="due${task.id}" value=duedate>
<f:parseDate value="${duedate}" pattern="yyyy-MM-dd"/>
</td>
<td id="done${task.id}" data-isDone="${task.isdone}">
<core:set var="isdone" value="${task.isdone}"/>
<core:if test="${isdone == true}">
<img src="images/checked.png"/>
</core:if>
</td>
<td>
<img src="images/edit-icon.png" onclick="editItem(${task.id})" />
</td>
<td>
<img src="images/delete.png" onclick="deleteItem(${task.id})" />
</td>
</tr>
</core:forEach>
</tbody>
这是否可能,或者我是否需要坚持'成功'功能并尝试使其有效?
答案 0 :(得分:0)
返回HTML而不是JSON是一种有效的方法,通常比在客户端处理JSON更简单。
让你的控制器/ servlet处理PUT转发到JSP,然后使用JQuery用返回的HTML更新一些元素。所以这看起来像是:
$.ajax({
type: "PUT",
url: putURI,
dataType: "json",
cache: false,
headers: {
Accept : "application/json; charset=utf-8",
"Content-Type": "application/json; charset=utf-8"
},
success: function (html){
$( "#results" ).append( html ); //append response to an element with id 'results'
// or
$( "#results" ).html( html ); //replace contents of element with id 'results'
},
error: function (request, status, error) {
alert(request.responseText);
alert(status);
alert(error);
}
});