zoukankan      html  css  js  c++  java
  • 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层接口是不能进行方法重载的。

  • 相关阅读:
    (转)深入剖析Redis主从复制
    (转)OpenStack之服务端口号
    (转)Centos7上部署openstack ocata配置详解
    (转)DB2高可用性灾难恢复
    (转)OpenStack各服务所用端口号总结
    (转)OpenStack构架知识梳理
    (转)基于OpenStack构建企业私有云(1)实验环境准备
    (转)一张图学会Dockerfile
    mysql误删root用户或者忘记root密码解决方法
    create table like 和create table select 比较
  • 原文地址:https://www.cnblogs.com/goloving/p/14885311.html
Copyright © 2011-2022 走看看