[
https://issues.apache.org/jira/browse/FREEMARKER-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16381603#comment-16381603
]
Daniel Dekany commented on FREEMARKER-84:
-----------------------------------------
[~taher] Because:
* All FTL language constructs can be referred either with Camel Case (CC) or
"legacy" naming convention(but they can't be mixed inside the same template, by
design). Originally FTL didn't use CC, but as soon as it has become common to
call Java API-s from templates, that wasn't practical anymore. The canonical
naming convention is still the non-CC version though.
* As name is part of the error messages that the returned
{{TemplateMethodModelEx}} generates, and because that's a singleton (static)
and so has no reference back to the AST node, we need two instances... Yeah,
very awkward, but that's why there's a FM3.
> Improve include directive to detect whether template exists
> -----------------------------------------------------------
>
> Key: FREEMARKER-84
> URL: https://issues.apache.org/jira/browse/FREEMARKER-84
> Project: Apache Freemarker
> Issue Type: Improvement
> Components: engine
> Affects Versions: 2.3.27-incubating
> Reporter: Yanming Zhou
> Priority: Major
>
> I requested feature `ignore_missing=true` of <#include> and freemarker have
> implemented it, but it cannot handle fallback like
> {code}
> <#assign path="relative.ftl">
> <#if isTemplatePresent(path)>
> <#include path>
> <#else>
> template "${path}" is not exists
> </#if>
> {code}
> Proposal 1:
> Introduce a new special variable like "template_included" similar to "$?" of
> shell exit code
> {code}
> <#include path ignore_missing=true>
> <#if !.template_included>
> template "${path}" is not exists
> </#if>
> {code}
> Proposal 2:
> Add an argument like "template_included" for include directive
> {code}
> <#include path ignore_missing=true template_included="pathExists">
> <#if !pathExists>
> template "${path}" is not exists
> </#if>
> {code}
> Proposal 3:
> Introduce a new special directive such as <#missing> similar to html
> <noscript> tag
> {code}
> <#include path>
> <#missing>
> template "${path}" is not exists
> </#missing>
> </#include>
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)