2013-03-19 47 views
0

是否可以命名ftl內的某些塊並在java端獲取它們?例如像與incrorrect語法也許模板中的命名示波器

#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(); 

回答

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"); 

(如果是這樣的話你會做很多事情,你可能想在模板中簡化它。像<@emailSubject>This is the email subject</@>更加清晰,更加傻瓜,因爲如果有人在「emailSubject」變量名稱中出現錯誤,它將立即失敗。)