我如何在不重新加载整个页面的情况下使用Ajax和JQuery的JSP刷新



我有一个带有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...
}

相关内容

最新更新