我们正在尝试在freemarker中构建一个系统,其中可以选择添加扩展文件来替换标准模板的块.
我们已经到了这一步
<#attempt>
<#include "extension.ftl">
<#recover>
Standard output
</#attempt>
Run Code Online (Sandbox Code Playgroud)
所以 - 如果extension.ftl文件存在,它将被使用,否则将输出recover块内的部分.
这个问题是freemarker总是记录导致恢复块触发的错误.
所以我们需要两件事之一:
-要么-
小智 -2
尝试以下方法获取基本路径:
<#assign objectConstructor = "freemarker.template.utility.ObjectConstructor"?new()>
<#assign file = objectConstructor("java.io.File","")>
<#assign path = file.getAbsolutePath()>
<script type="text/javascript">
alert("${path?string}");
</script>
Run Code Online (Sandbox Code Playgroud)
然后遍历目录结构:
<#assign objectConstructor = "freemarker.template.utility.ObjectConstructor"?new()>
<#assign file = objectConstructor("java.io.File","target/test.ftl")>
<#assign exist = file.exists()>
<script type="text/javascript">
alert("${exist?string}");
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6090 次 |
| 最近记录: |