【发布时间】:2014-01-23 09:15:27
【问题描述】:
我有一个带有 java jsp servlet 的网络应用程序。
在我的网络前端的右侧,我有一个右侧的链接列表。 (这是我的 sidebarright.jsp) 如果我按下减号图片,则会打开一个弹出窗口(弹出窗口也是一个名为 deletelink.jsp 的 jsp 页面)。 在弹出页面中,我有一个链接列表,我可以使用复选框选择要删除的链接。
所以如果我删除一个链接,在数据库中它没问题,但我必须用 F5 更新 startside。只有这样我才会看到我已经删除了一个链接。
所以我想用 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 脚本部分的我的成功部分中没有得到响应。我不知道为什么?
另一件事是:我怎么能说刷新右侧栏jsp。
【问题讨论】:
-
你写
alert ("success in ajax");成功了,这说明了吗? -
不,它不显示警报窗口。
-
是否显示失败警报?
-
我过去,我有一个错误,然后它显示我失败警报。错误是没有任何东西发送到 servlet。但现在它正在向 servlet 发送请求,现在它没有显示任何警报。既不失败也不成功
-
您可能会在 java 端中断,但由于您的 catch 块不会转储堆栈,因此您看不到实际问题。即使没有帮助,在其中包含 e.printStackTrace() 也是一个好主意。
标签: java jquery ajax jsp servlets