我正在尝试支持电子邮件的动态模板。某些用户定义的模板可能包含图像。我有所有可用图像的列表,但是仅使用图像占位符来上传模板,例如:
<img style="min-width: 100%;" src="images/email_template_header.gif" th:src="'cid:email_template_banner'"/>
每个图像都需要内联添加,问题是要检测出使用了哪些图像? 我可以自己解析模板(因为它是HTML,所以应该很容易)并提取所有占位符。
但是Thymeleaf解析模板本身。我最后得到了额外的自定义方言+ AbstractAttributeTagProcessor,它可以解析“ img”标签,因此具有所有必需的信息。
现在的问题是:如何将有关标记的信息从内部处理器传递到调用解析器的方法?我可以使用某种上下文吗?
AbstractAttributeTagProcessor使用ITemplateContext,而在设置电子邮件参数期间,我使用org.thymeleaf.context.Context。它们似乎没有任何连接。
我想将所有找到的图像占位符列表放到上下文中,因此在解析之后,我将能够读取此列表并仅内联那些图像。