springboot無法跳轉(zhuǎn)頁面問題的解決方案是什么

本篇文章為大家展示了springboot無法跳轉(zhuǎn)頁面問題的解決方案是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為密山企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站建設(shè),密山網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

首先我登錄頁面直接通過瀏覽器請求直接訪問的,項目結(jié)構(gòu)如圖所示

登錄頁面

<form action="index" id="frm"> 

<input type="text" name="dname">  

<input type="text" name="loc">  

<input type="button" value="提交" id="but" >

</form><script src="js/jquery-1.12.2.js">

</script><script>  $(function () {    

$("#but").click(function(){     

 var data = $("#frm").serialize();      

$.get("index",data);  

}) 

 })

</script>

點(diǎn)擊提交后,是一個ajax發(fā)送表單里面的數(shù)據(jù),請求地址為index,會去數(shù)據(jù)庫里面查詢是否有這個人(后端采用mybatis去數(shù)據(jù)庫查詢),根據(jù)返回的結(jié)果,跳到相應(yīng)的頁面去,我在controller里面寫的index請求的java代碼為:

//  登錄  @GetMapping("index")  public String addDept(Dept dept) {    log.info("dept===" + dept);    List<Dept> depts = deptService.selectDept(dept);    if (depts != null) {      return "index";    } else {      return "error";    }  }

意外的事情出現(xiàn)了,有查詢結(jié)果出來,而且也進(jìn)入了if判斷,但就是沒有跳轉(zhuǎn)頁面,這個問題困惑了許久,一直沒想到問題出現(xiàn)在哪里,百度了很多,其中百度給的結(jié)果有以下幾點(diǎn):

注解使用@Controller 而不是@RestController,因為使用@RestController會返回“index”字符串首先在pom文件中引入模板引擎jar包,即:

<dependency> 

 <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

在application.properties中配置模板引擎

spring.thymeleaf.prefix=classpath:/templates/

不加@responseBody注解,因為加了之后會返回一個字符串的形式;以上的這些坑,我都試了,最后還是沒有失敗,但是我直接在瀏覽器上輸入index請求,會跳轉(zhuǎn)到index.html的頁面上面去,我就很納悶了,還是不知道我的問題出現(xiàn)在哪里

我的index.html的頁面如下,用ajax請求,調(diào)用去數(shù)據(jù)庫查詢所有人的請求,代碼如下:

index頁面

<script src="../js/jquery-1.12.2.js"></script>

<script>  selectDept()  function selectDept() {    

$.get("getDept",callSelectDept,"JSON")    function callSelectDept(data) {      

var str=""      for (var i =0;i<data.length;i++){        

str+=data[i].deptno+"---"+data[i].dname+"---"+data[i].loc+          

"<a href=deleteDept?deptno='"+data[i].deptno+"'>刪除</a>"+          "<a href=updateDept?deptno='"+data[i].deptno+"'>修改</a>"    +"<br/>"    

  }      $("#queryDept").append(str)    }  }

當(dāng)通過瀏覽器訪問index.html后,會顯示出來數(shù)據(jù),這里是沒有問題的

后來過了一段時間吧,才想起來是不是ajax請求調(diào)用方法后,在java后端發(fā)送跳轉(zhuǎn)頁面請求后,不能跳轉(zhuǎn)頁面,因為ajax默認(rèn)是異步請求嘛.代碼如下

$.ajax({        asyn:false,        url:"index",        type:"get",        data:data      })

后來將ajax請求改為同步之后,還是失敗,最后,將提交表單的方式改為summit,成功!!!

<form action="index" id="frm">   

<input type="text" name="dname">   

<input type="text" name="loc">   

<input type="submit" value="提交" >

</form>

總結(jié):ajax請求最好只用于發(fā)送數(shù)據(jù),和從后端拿數(shù)據(jù),不要做跳轉(zhuǎn)頁面的...如果一定要做頁面的跳轉(zhuǎn),可以約定后端放回的數(shù)據(jù)為1或0,當(dāng)返回的數(shù)據(jù)為1時,用Windows.location.href="index.html" rel="external nofollow" rel="external nofollow" 來跳轉(zhuǎn)

具體代碼如下:

function callback(dat){       

if (dat=1){         

 window.location.href="index.html" rel="external nofollow" rel="external nofollow"       

  }else {         

 alert("1")        }

否則就用submit提交,記住了,ajax用于發(fā)送請求到那個方法后,后端是跳轉(zhuǎn)不了頁面的,也不會報錯,因為ajax用于默認(rèn)是異步請求,如果要跳就在前端跳轉(zhuǎn)頁面也是可以的

上述內(nèi)容就是springboot無法跳轉(zhuǎn)頁面問題的解決方案是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:springboot無法跳轉(zhuǎn)頁面問題的解決方案是什么
網(wǎng)頁網(wǎng)址:http://muchs.cn/article16/ijoodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、動態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)