• SpringBoot报错处理:Exception processing template "XXX": Error resolving template [XXX]、expression expected找不到符号的错误、illegal escape character in String literal、Dao层方法不能重载


    一、Exception processing template "XXX": Error resolving template [XXX]

      springboot+thymeleaf中,访问请求 user/login 时报错,报错内容如下:

    : [THYMELEAF][http-nio-8080-exec-2] Exception processing template "user/login": Error resolving template [user/login], template might not exist or might not be accessible by any of the configured Template Resolvers
    
    org.thymeleaf.exceptions.TemplateInputException: Error resolving template [user/login], template might not exist or might not be accessible by any of the configured Template Resolvers
        at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE]
        at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE]

      Java代码块

    @Controller
    @AllArgsConstructor
    @RequestMapping("/user")
    public class UserController {
        private UserService userService;
    
        @PostMapping("/login")
        public void login(@RequestBody User user) {
            userService.login(user);
        }
    }

      解决办法:

    1、由于用的是@Controller而非@RestController注解,所以这里返回json串,需要加上@ResponseBody注解即可,否则返回的是静态页面,而不是json串,由于没有找到静态页面所以报错;

    @PostMapping(value = "/updateUser")
    @ResponseBody
    public void updateUser(User user){
        userService.updateUserInfo(user);
    }

    2、改用 @RestController 注解

    二、expression expected找不到符号的错误

      这个因为马虎出错,但是可以记录下,以后遇到这样的报错就知道是怎么回事了。具体报错如下:

      改成这样即可:上面的 return OperationInfo 写错了,应该是 return operation。

      其实找不到符号,变量 OperationInfo,其实说的就是这个变量找不到了,那肯定是写错了。

    三、illegal escape character in String literal

      写文件路径的时候可以使用 / 作为分隔符或者File.separator,最好不用 ,因为这个斜杠用的时候需要在前面再加一个 转义,并且这个分隔符只对windows系统有用,局限性比较严重

      Java里的正则表达式同理

      应该是这样的:phoneNum.matches("^1[2-9]\d{9}$")

     四、Dao层方法不能重载

      在dao层中的方法是不可以重载的。

      因为dao层中接口的方法名与xml中的标签id值是一致的,所以一旦出现方法重载之后就可会出现相同的方法名,xml中的id也是重名的了,一运行系统就会报错,所以mybaits中的dao层接口是不能进行方法重载的。

  • 相关阅读:
    浅谈异或运算^的作用
    牛客网剑指offer第40题——数组中只出现一次的数字(浅谈位运算的妙用)
    归并排序——一文吃透归并和递归的思想和完整过程!(没看懂请留言)
    深入分析二分查找及其变体
    vector构造函数的学习
    牛客网剑指offer第34题——找到第一个只出现一次的字符
    牛客网剑指offer第27题——求字符串的全排列
    牛客网剑指offer第20题——定义栈的数据结构
    C++重载运算简介
    Leetcode中字符串总结
  • 原文地址:https://www.cnblogs.com/goloving/p/14885311.html
Copyright © 2020-2023  润新知