我得到一个字符串,它已经有一个胸腺细胞标记,如下所示:
String html = "<span th:text="${fisrtText}"></span> Indicative Terms for a <span th:text="${currency}"></span><span th:text="${amount}"></span>M <span th:text="${type}"></span> Facility"; 我将上面的字符串设置为上下文变量如下:
context.setVariable("topSection", html);我正在设置上下文变量,其值用于替换上面字符串中的标记:
org.thymeleaf.context.Context context = new org.thymeleaf.context.Context();
context.setVariable("fisrtText", "This is fisrt Text");
context.setVariable("currency", "$");
context.setVariable("amount", 256.10);
context.setVariable("type", "Loan");现在,在template.html中,我试图按以下方式获得它:
<span th:utext="@{__${topSection}__}"></span>我希望将html字符串替换为上下文中可用的值。但它返回的html与它没有任何处理的html相同:
<span th:text="${fisrtText}"></span> Indicative Terms for a <span th:text="${currency}"></span><span th:text="${amount}"></span>M <span th:text="${type}"></span> Facility"任何帮助都将不胜感激。
发布于 2017-06-22 11:57:05
最好使用多个模板引擎bean,一个用于字符串,另一个用于资源HTML文件。
( 1)资源档案
@Bean(name ="templateEngine")
public SpringTemplateEngine getTemplateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(new ClassLoaderTemplateResolver(););
templateEngine.setMessageSource(messageSource);
templateEngine.setTemplateEngineMessageSource(messageSource);
return templateEngine;
}您可以为ClassLoaderTemplateResolver设置前缀和后缀。
2)字符串模板解析器:
@Bean(name ="stringTemplateEngine")
public SpringTemplateEngine getTemplateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(new StringTemplateResolver(););
return templateEngine;
}现在,首先使用stringTemplateEngine解析带有胸腺元标记的字符串变量。
String html = "<span th:text="${fisrtText}"></span>";
String parsedHtml = stringTemplateEngine.process(html,context);现在将ParsedHtml放在上下文中。
context.setVariable("topSection", parsedHtml);然后,正如@holmis83建议的那样,直接访问模板中的变量
<span th:utext="${topSection}"></span>发布于 2017-06-21 14:50:54
@{...}是一个链接URL表达式。我认为您希望使用变量表达式${...}。
您的代码已调整:
<span th:utext="${__${topSection}__}"></span>请注意,${topSection}必须计算为表达式,它不能是任意的Thymeleaf标记(例如th:text )。
https://stackoverflow.com/questions/44677086
复制相似问题