我有一个使用java jsp servlet的web应用程序。
在我的网络前端的右侧,我有一个右侧有链接的列表。 (这是我的sidebarright.jsp) 如果我按下负图片,将打开一个弹出窗口(弹出窗口也是一个名为deletelink.jsp的jsp页面)。 在弹出页面中,我有一个链接列表,我可以选中复选框,我想删除哪些链接。
所以,如果我删除一个链接,在数据库中它还好,但我必须用F5更新起始端。只有这样我才会看到我删除了一个链接。
所以我想用Ajax和Jquery更新链接列表(sidebarright.jsp),而不是刷新整个起始端。
我的deletelink.jsp页面中的我的ajax和jquery部分删除链接是这样的:
$(document).ready(function(){
$('#setdeletefilelink').submit(function(){
var id=5;
$.ajax({
url: '<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement='+id,
type: 'POST',
dataType:'json',
data: $('#setdeletefilelink').serialize(),
success: function(data){
alert ("success in ajax");
alert(data);
//sideBarRight.location.reload();
//alert("hallo");
//If you want to return anything in jsp.
},
error:function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
alert("failure");
$("#result").html('there is error while submit');
}
});
// close();
});
});
我对servlet的回应是这个
if (lstrAction.equalsIgnoreCase("uploaddeletelink")){
String wherestatement;
try{
LinkUploadService linkUploadService= new LinkUploadService();
linkUploadService.deleteLink(wherestatement);
//Sende anfrage wieder zurück zur JSP
response.setCharacterEncoding("text/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().println("Hallo ich bin ein Servlet");
response.getWriter().write(new Gson().toJson("TEST"));
}
else{
wherestatement = "";
}
}catch(Exception e){
}
this.checkAndDoBackgroundAction(request);
}
在servlet中执行操作后,不要在ajax脚本部分的“success”部分中获取repsone。我不知道为什么?
并且其中包括:我怎么说刷新右边的条jsp。
答案 0 :(得分:0)
你说弹出窗口是一个不同的文件。它在iframe中打开了吗? 不会调用成功函数,因为表单已提交,这可能有助于:
$('#setdeletefilelink').submit(function(e){
e.preventDefault();
没有动作的表单正在提交给自己,也许如果您尝试这样:
$('#setdeletefilelink').submit(function(e){
//...Ajax call here
e.preventDefault();
return false;
});
否则,你必须检查萤火虫,如果有错误或ajax reqeust反正..
作为右侧,在同一页面上,当你获得成功时,它应该是这样的:
success: function(data){
//an identifire for the right side would be nice
$("#ID_ofTheRightSide", parent.document).html(data); //depending on what you getting back...
}