我有一个带有Java JSP Servlet的Web应用程序。
在网络前端的右侧,我有一个列表,右侧有链接。(这是我的sidebarright.jsp)如果我按负图,将打开一个弹出窗口(弹出窗口也是一个名为Deletelink.jsp的JSP页面)。在弹出页面中,我有一个链接列表,我可以选择要删除的链接的复选框。
因此,如果我删除了一个链接,则在数据库中它可以很好,但是我必须使用f5开始。只有这样,我才能看到我删除了链接。
因此,我想使用ajax和jquery the linkList(sinebarright.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 a中的操作之后,请勿在Ajax脚本部分中的成功部分中重复出现。我不知道为什么?
和换句话说是:我可以说如何刷新右侧bar jsp。
您说弹出窗口是一个不同的文件。那是在iframe中操作吗?成功函数未调用,因为表格提交,也许这会有所帮助:
$('#setdeletefilelink').submit(function(e){
e.preventDefault();
不采取行动的表格正在提交自我,也许如果您尝试此操作:
$('#setdeletefilelink').submit(function(e){
//...Ajax call here
e.preventDefault();
return false;
});
否则,您必须检查Firebug,如果有错误或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...
}