title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析

date: 2019-11-20 15:49:39
categories:

  • Java
  • Thymeleaf

在项目中首次用到了Thymeleaf模板开发 ,但是发现不管怎么看都没有错的代码 HTML页面中使用到‘$表达式’却总是报红,搜索了一下 发现其实并没有出错 但是看着很不舒服 便找了解决方法 解决标红的地方

问题情境

1:IDEA环境开发
2:使用SpringBoot框架
3:使用Thymeleaf前端框架开发
4:Controller层填充数据到model中 并需要在页面中动态显示

1:Controller层
title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第1张图片
2:entity Page对象
title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第2张图片
3:html中
title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第3张图片

所有${ }表达式报红色波浪线

问题原因

虽然在后端的entity中添加了对象数据信息,但是此时的程序并未开始运行,所以对于前端文件是无法感知到填充对象的。而我们的IDEA默认要对thymeleaf的数据进行验证,所以这个时候就会有红色波浪线存在了!
但此时并没有发生错误

解决方法

解决方案一:对每个飘红的地方进行注解(只有当前行设置生效)

缺点:

  • 每一处都要注解:非常麻烦,HTML文档会因此显得非常臃肿,可读性差
  • 使用的属性无法解决报红

在报红的地方 按alt+enter键自动修正即可

title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第4张图片

但是如果只用到了model中的属性 此方法并没有什么用处

解决方案二:压制HTML中文件的警告或者错误(只有当前文件中设置生效)

需要在< ! DOCTYPE html >下添加一条注释
suppress ThymeleafVariablesResolveInspection 压制 Thymeleaf的警告信息


title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第5张图片

或者添加 suppress ALL 压制所有警告信息


title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第6张图片

之后本页所有的报错都会消失

title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第7张图片

第三种方案:关闭IDEA对于thymeleaf的数据验证选项(全局所有文件都会应用设置,飘红消失)
强迫症福音!

Setting中调整Inspections里面 选择Thymeleaf的报红选项 取消勾选即可
title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第8张图片

之后项目中所有页面关于Thymeleaf的报错都会消失

title: IDEA开发SpringBoot使用thymeleaf模板时 '$表达式'报红分析_第9张图片


你可能感兴趣的:(Java)