gpt4 book ai didi

java - Thymeleaf:检测硬编码文本

转载 作者:行者123 更新时间:2023-11-30 07:46:08 24 4
gpt4 key购买 nike

是否有机会在 Thymeleaf 模板启动时自动搜索非本地化文本并记录出现情况?

我的基础设施:Ant、Spring、Thymeleaf。

最佳答案

不幸的是,没有明确记录的方法来做到这一点(据我所知)。

话虽如此,我已经做了类似的事情,我想检查模板中的某些内容并记录发生的情况,但是实现很丑陋。

我必须警告你,这太可怕了,因为它不是标准的,可能会在未来的版本中被破坏,所以我会谨慎使用,并且绝对不会在任何生产代码中使用。

这要求您的模板解析器可缓存为true - org.thymeleaf.templateresolver.TemplateResolver#setCacheable(true) 默认为true

我可以通过扩展org.thymeleaf.cache.StandardCacheManager(您需要在org.thymeleaf.TemplateEngine上设置缓存管理器)并覆盖来做到这一点initializeTemplateCache() 返回了 org.thymeleaf.cache.StandardCache 的自定义版本。我的缓存实现重写了 put(..) 方法,该方法传入 org.thymeleaf.Template 作为值。

然后可以通过 getDocument() 访问 org.thymeleaf.dom.Document ,从那里您可以递归地遍历子级(其中一些将是 >org.thymeleaf.dom.AbstractTextNode)。在您的情况下,您可能还想迭代元素节点上的所有属性。

对于您来说,您必须编写一些逻辑来确定文本是否不会本地化,确定 #{} 表达式是否未被使用,或者该表达式是否在不在 th:...="#{}" 标记中或内联 [[#{}]]

我知道丑陋,但它对我有用。如果有人有更干净的解决方案,我会洗耳恭听。

关于java - Thymeleaf:检测硬编码文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33933716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com