異常:Error resolving template "xxx", template might not exist or might not be accessible...解決辦法


簡單表述:控制台出現了這個異常:Error resolving template "xxx", template might not exist or might not be accessible by any of the configured Template Resolvers

解決辦法:在報出這個異常的方法上添加注解@ResponseBody

講一下個人理解:這個注解就是用來區別 方法的返回值字符串 和 視圖解析器解析的頁面名字字符串 的沖突的,舉個例子:方法A返回的字符串success,如果和ajax的回調函數里的msg匹配,就彈出一個“執行成功”,因為success只是普通的字符串,所以要在方法上邊加上@ResponseBody。   方法B的返回值是“/contextList”,而這個就是一個頁面contextList.jsp或者是contextList.html(具體是什么看配置,反正是個頁面)。

 @ResponseBody 這個注解, 就表明該方法的返回值直接寫入到 HTTP Response Body 中。 這就是說,如果返回的是JSON, 就得必須添加 @ResponseBody 這個注解,一般在異步獲取數據時使用,在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上@responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。比如異步獲取json數據,加上@responsebody后,會直接返回json數據。

網上找的資料(博客鏈接:https://blog.csdn.net/Ocean_tu/article/details/80989584):

controller層加注解@Controller 和@RestController都可以在前端調通接口,但是二者的區別在於,當用前者的時候在方法上必須添加注解@ResponseBody,如果不添加@ResponseBody,就會報上面錯誤,因為當使用@Controller 注解時,spring默認方法返回的是view對象(頁面)。而加上@ResponseBody,則方法返回的就是具體對象了。@RestController的作用就相當於@Controller+@ResponseBody的結合體

 

看看配置對不對:

spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.prefix=classpath:/templates

根據評論的兄弟說的一種可能情況:spring.thymeleaf.prefix=classpath:/templates/  最后是沒有符號  /  的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM