首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用上下文变量对胸腺细胞进行预处理

用上下文变量对胸腺细胞进行预处理
EN

Stack Overflow用户
提问于 2017-06-21 13:08:16
回答 2查看 5K关注 0票数 2

我得到一个字符串,它已经有一个胸腺细胞标记,如下所示:

代码语言:javascript
复制
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"; 

我将上面的字符串设置为上下文变量如下:

代码语言:javascript
复制
context.setVariable("topSection", html);

我正在设置上下文变量,其值用于替换上面字符串中的标记:

代码语言:javascript
复制
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中,我试图按以下方式获得它:

代码语言:javascript
复制
<span th:utext="@{__${topSection}__}"></span>

我希望将html字符串替换为上下文中可用的值。但它返回的html与它没有任何处理的html相同:

代码语言:javascript
复制
<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"

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-22 11:57:05

最好使用多个模板引擎bean,一个用于字符串,另一个用于资源HTML文件。

( 1)资源档案

代码语言:javascript
复制
    @Bean(name ="templateEngine")       
    public SpringTemplateEngine getTemplateEngine() {
      SpringTemplateEngine templateEngine = new SpringTemplateEngine();

      templateEngine.setTemplateResolver(new ClassLoaderTemplateResolver(););
      templateEngine.setMessageSource(messageSource);
      templateEngine.setTemplateEngineMessageSource(messageSource);
      return templateEngine;
   }

您可以为ClassLoaderTemplateResolver设置前缀和后缀。

2)字符串模板解析器:

代码语言:javascript
复制
@Bean(name ="stringTemplateEngine")     
    public SpringTemplateEngine getTemplateEngine() {
      SpringTemplateEngine templateEngine = new SpringTemplateEngine();

      templateEngine.setTemplateResolver(new StringTemplateResolver(););
      return templateEngine;
   }

现在,首先使用stringTemplateEngine解析带有胸腺元标记的字符串变量。

代码语言:javascript
复制
String html = "<span th:text="${fisrtText}"></span>";
String parsedHtml = stringTemplateEngine.process(html,context);

现在将ParsedHtml放在上下文中。

代码语言:javascript
复制
context.setVariable("topSection", parsedHtml);

然后,正如@holmis83建议的那样,直接访问模板中的变量

代码语言:javascript
复制
<span th:utext="${topSection}"></span>
票数 3
EN

Stack Overflow用户

发布于 2017-06-21 14:50:54

@{...}是一个链接URL表达式。我认为您希望使用变量表达式${...}

您的代码已调整:

代码语言:javascript
复制
<span th:utext="${__${topSection}__}"></span>

请注意,${topSection}必须计算为表达式,它不能是任意的Thymeleaf标记(例如th:text )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44677086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档