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