【问题标题】:Named scopes in templates模板中的命名范围
【发布时间】:2013-03-19 21:51:35
【问题描述】:

是否可以在 ftl 中命名一些块并将它们放在 java 端?例如可能有错误的语法之类的东西

#emailSubject[
This is email subject]
#emailMessage
[Email multi-
line message!!
Hi all]

和java端的样子

template.process("template.ftl", resultModelOrSomethingElse);
String emailSubject = resultModelOrSomethingElse.getEmailSubject();
String emailMessag = resultModelOrSomethingElse.getEmailMessage();

【问题讨论】:

    标签: freemarker


    【解决方案1】:

    开箱即用,您可以这样做:

    <#assign emailSubject>This is the email subject</#assign>
    
    <#assign emailMessage>
      This is the email message...
    </#assign>
    

    然后:

    // Same as template.process, but you will have the Environment:
    Environment env = template.createProcessingEnvironment(dataModel, out);
    env.process();
    
    // Extract top-level variables:
    TemplateModel emailSubject = env.getVariable("emailSubject");
    TemplateModel emailMessage = env.getVariable("emailMessage");
    

    (如果这是你经常做的事情,你可能想在模板中简化它。就像&lt;@emailSubject&gt;This is the email subject&lt;/@&gt; 更简洁,更简单,因为如果有人在“emailSubject”中犯了错误,它会立即失败" 变量名。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多