1. 程式人生 > >關於springmvc的controller返回頁面無法跳轉,使用ajax

關於springmvc的controller返回頁面無法跳轉,使用ajax

問題

在使用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來實現