怎么解决might not be accessible by any of the configured template resolvers

怎么解决might not be accessible by any of the configured template resolvers,第1张

怎么解决might not be accessible by any of the configured template resolvers

application.properties配置文件

spring.thymeleaf.prefix=classpath:/templates/

spring.thymeleaf.suffix=.html

spring.thymeleaf.mode=LEGACYHTML5

#spring.thymeleaf.encoding=UTF-8

#spring.thymeleaf.content-type=text/html # charset=<encoding>is added

spring.thymeleaf.cache=false

springboot使用thymeleaf时报html没有结束标签

在使用springboot的过程中,如果使用thymeleaf作为模板文件,则要求HTML格式必须为严格的HTML5格式,必须有结束标签,否则会报错!解决办法如下:

1、你可以使用严格的标签,也就是每个标签都有结束标签,这种可能比较麻烦

2、在application.properties中增加spring.thymeleaf.mode=LEGACYHTML5,即声明thymeleaf使用非严 格的html。

maven依赖如下

<dependency>

<groupId>net.sourceforge.nekohtml</groupId>

<artifactId>nekohtml</artifactId>

<version>1.9.22</version>

</dependency>

现在就可以正常访问了。

希望对你有帮助~

  1.1   th:id    

         替换id标签

  1.2    th:text   

          文本替换,包括html标签

  1.3 th:utext   

        文本替换,html标签会显示出正确的样式

   1.4 th:object 

   替换对象, 用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定。

1.5  th:value

属性赋值

1.6 th:with

定义局部变量

当th:with被处理,firstPer变量创建一个局部变量和变量添加到map自上下文, 以便它是用于评估和其他上下文中声明的变量从开始,但只有包含<div >标记的范围内。

定义多个局部变量

1.7 th:style

设置样式

1.8 th:onclick

点击事件

1.9 th:each

属性赋值

1.10 th:if

 判断条件

1.11 th:unless

和th:if判断相反

1.12 th:href

链接地址

1.13 th:switch

多路选择配合th:case使用

1.14 th:fragment

自定义片段,定义fragment,所有的fragment可以写在一个文件里面,也可以单独存在

   1.15  th:insert

   保留自己的主标签,保留th:fragment的主标签。

  1.16  th:replace

  不要自己的主标签,保留th:fragment的主标签。

    1.17 th:include

    保留自己的主标签,不要th:fragment的主标签。(官方3.0后不推荐)

    结果为:

1.18 th:selectd

selected选择框选中

1.19 th:src

图片类地址引入

1.20 th:inline

定义js脚本可以使用变量

1.21 th:action

表单提交的地址

1.22 th:remove

删除某个属性

1.all:删除包含标签和所有的孩子。

2.body:不包含标记删除,但删除其所有的孩子。

3.tag:包含标记的删除,但不删除它的孩子。

4.all-but-first:删除所有包含标签的孩子,除了第一个。

5.none:什么也不做。这个值是有用的动态评估。

1.23 th:attr

 设置标签属性,多个属性可以用逗号分隔

$ {...}    变量表达式,可用于获取后台传过来的值

 * {...} 选择变量表达式  

 #{...} 消息表达式  

 @ {...} 链接⽹址表达式,用于替换网页中的 src、href 等的值

〜{...} ⽚段表达式,可以用于引用公共的目标片段

@{...} 处理 url 地址

     Thymeleaf 的 @ {...} 表达式用于处理 web 应用中的 url 地址,可以是相对地址,也可以是绝对地址。

     @{/}  斜杠开头表示相对整个应用根目录,"/" 表示 "/应用上下文路径"

     假如页面当前浏览器地址为:http://localhost/thymeleaf/user/userHome,其中 thymeleaf 表示应用上下文路径,user/userHome 为后台请求路径,则常用的写法如下:

1)@{userList} 相对当前路径结果为:http://localhost/thymeleaf/user/userList

2)@{./userList} 相对当前路径结果为:http://localhost/thymeleaf/user/userList

3)@{../tiger/home} 相对当前路径结果为:http://localhost/thymeleaf/tiger/home

4)@{/tiger/home} 相对应用根目录结果为:http://localhost/thymeleaf/tiger/home

5)@{https://www.baidu.com/} 绝对路径结果为:https://www.baidu.com

6)<link type="text/css" rel="stylesheet" th:href="@{/css/home.css}">,@ 以 "/" 开头相对应用根目录,否则是相对当前路径。

@{...} 携带参数

     th:href 是⼀个修饰符属性,将表达式结果设置为标签 href 属性的值,请求地址中携带参数传往服务器是很常见的 *** 作,常用 *** 作如下:

1)在 @{...}表达式末尾使用 "()" 设置参数;

2)多个参数时,使用 "," 隔开

3)参数值可以使用表达式动态取值。

文本及其 *** 作

     ⽂本⽂字指包含在单引号之间的字符串,它们可以包含任何字符,但如果字符串有空格时,必须使用单引号" ' "包含。

字符串追加

     ⽆论是字符串⽂本常量,还是通过变量表达式或消息表达式计算的结果,都可以使⽤ "+" 运算符轻松地追加⽂本。

数字字⾯量

布尔字⾯量

     布尔字⾯量包含 true 和 false:

NULL 字⾯量

算术运算符

     Thyme Leaf 标准表达式⽀持算术运算:+, - ,*,/(除),%(取余)

⽐较/逻辑运算符

     表达式中的值可以与 >,<,>= ,<= ,==,!= 符号进⾏⽐较。 ⼀个更简单的替代⽅案是使⽤这些运算符的⽂本别名:gt(>),lt(<),ge(>=),le(<=),eq(==),neq(!=)。

     逻辑运算符:and(与)、or(或)、!(非),not(非)

三元运算符

     Thymeleaf 中的三元运算与 Java 以及 JavaScript 中基本一致,如 A>B?X:Y,在 X、Y 中可以继续嵌套,只是 Thymeleaf 中需要使用括号包含起来,否则报错。

如果原先有 @Bean(name="xxx") 直接用方法名即可(我原先的 name 和方法名不一样就很尴尬)

hashedCredentialsMatcher 中的内容可以直接 new ,所以不需要注入

如果SpringBoot的版本从 1.5.x 变成了 2.0.x , shiroDialect 或者 shiroFilter 可能会报如下错误

把 thymeleaf-extras-shiro 的版本号改成 2.0.0 即可(原先是 1.2.1 )

在 SpringBoot 版本中,在 Realm 中注入 Service 时,为了启用缓存,需要在前面加上 @Lazy 注解,如下

在 Kotlin 版本中我不知道发了啥疯就把它去掉了(可能是看到前面类型是 lateinit var ,自以为是的觉得可以代替 @Lazy ),然后改成了改成如下形式

拷贝完整个项目之后,测试功能的时候,发现缓存没了……然后就开始疯狂DEBUG,从版本问题,到 jar 包冲突问题,经历了很漫长的一段时间后,我定位到了 ShiroConfiguration ,只要把 shiro aop 注解关闭就可以开启缓存了

WHAT??

疯狂谷歌一个小时无果(因为一直以为是 Kotlin 不兼容啥的,或者是 shiro 在 boot2.x 之后需要修改相应的配置)

然后又疯狂DEBUG,把 Kotlin 版和 springboot 版进行对比,最后。定位到了 @Lazy (还好只是改成了注释,没把它给直接删了)

果然。加了 @Lazy ,整个天都亮了

最后顺便提一句 Realm 认证超级管理员的问题,可以直接在 Realm 中加上超级管理员的特别认证,就不用去方法级别上区分这个权限可以超级管理和XX管理员都可用了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11776805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存