關於springmvc的controller返回頁面無法跳轉,使用ajax
阿新 • • 發佈:2019-01-09
問題
在使用ajax提交資料到controller並且向跳轉頁面時,發現在controller中直接return一個頁面的路徑是無法跳轉成功的,然後分宜了下原因之後好像是說ajax本省市不提供跳轉功能的,雖然不知道這個原因對不對,但是還是需要找其他的方法來實現頁面跳轉。
解決方案
如果想要實現上述功能的話可以使用window.location.href=“xxx.do”,這樣訪問我們的controller之後可以實現頁面跳轉,並且放在modelMap中的資料也是可以在下一個頁面中取到的。
下面放程式碼:
controller:
@RequestMapping("/articleDetails.do") public String articleDetails(HttpServletResponse response,HttpServletRequest request,ModelMap modelMap){ String id = request.getParameter("id").toString(); ComArticle comArticle = new ComArticle(); comArticle.setId(Integer.parseInt(id)); ComArticle details = comArticleService.selectDetails(comArticle); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String date = sdf.format(details.getRcdtime()); modelMap.put("details", details); modelMap.put("date", date); return "comArticle/comArticleDetails"; }
js:
$.post("homepage.do", { recordStart: pageCode*date, pageSize: date } , function(data){ pageCode=pageCode+1; if(data.length<5){ for(var i=0;i<data.length;i++ ){ var yy="20" + (data[i].rcdtime.year.toString().slice(1,3)); var mm=parseFloat(data[i].rcdtime.month)+1; mm=mm.toString().length==1?"0"+mm:mm; var dd=data[i].rcdtime.date; dd=dd.toString().length==1?"0"+dd:dd; var date=yy+"-"+mm+"-"+dd; var html='<a id="'+data[i].id+'" onclick="transferId(this)"><dl class="container"><dt><img src="'+data[i].headimage+'"/></dt><dd><h4 class="container"><span>'+data[i].comArticleCategory.categoryname+'</span></h4><p class="title">'+data[i].title+'</p><p class="date">'+date+'</p><p class="gary">'+data[i].description+'</p></dd></dl></a>'; $("#loadMore").before(html); colorShow(); }
</pre><pre code_snippet_id="1628840" snippet_file_name="blog_20160330_5_144718" name="code" class="html"><pre name="code" class="html">function transferId(obj){ var id=obj.id; $.ajax({ type: "GET", success:function(data){ window.location.href = "articleDetails.do?id="+id; } }); }
解釋
在上面的js中我想在var html中實現點選<a>標籤跳轉,這時候就需要用到window.location.href來實現