• 异常: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/  最后是没有符号  /  的

  • 相关阅读:
    android测试点汇总
    Java Web应用调优线程池
    大型网站架构技术一览
    如何用消息系统避免分布式事务
    VMware Tools安装
    Git
    构架分布式队列编程
    排序算法概述
    ThreadLocal使用和原理
    JVM常用参数配置
  • 原文地址:https://www.cnblogs.com/xuchao0506/p/9556130.html
Copyright © 2020-2023  润新知