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层接口是不能进行方法重载的。

  • 相关阅读:
    Android Studio如何设置代码自动提示
    Java中Map的用法详解
    Android 管理Activity中的fragments
    Android
    WebApp之Meta标签
    iOS中为网站添加图标到主屏幕以及增加启动画面
    HTML5添加 video 视频标签后仍然无法播放的解决方法 IIS添加MIEI类型
    WebApp之 apple-touch-icon
    Eclipse编辑器基本设置
    Redis监控方案
  • 原文地址:https://www.cnblogs.com/goloving/p/14885311.html
Copyright © 2011-2022 走看看