标签: freemarker

转储Freemarker中.vars中的所有值

我正在尝试将所有可用的变量转储到我的freemarker模板中.我试图使用类似的东西:

<#list .vars?keys as prop>
${prop} = ${.vars.get(prop)}
Run Code Online (Sandbox Code Playgroud)

</#list>

我在文档中读到.vars不支持密钥功能,但我正在使用上面的内容来展示我正在尝试做的事情.

这是我与Freemarker的第一天,所以任何建议都会很棒.

java jsp freemarker

6
推荐指数
1
解决办法
8150
查看次数

Freemarker模板中的JSP标记

我想在freemarker模板中使用一些自定义标签,这很容易,因为我可以在我的web.xml文件中包含JspSupportServlet并在模板中包含以下行.

<#assign my=JspTaglibs["/WEB-INF/mytaglib.tld"] />
Run Code Online (Sandbox Code Playgroud)

但是,如果.tld捆绑在META-INF目录中的JAR文件中,我该怎么做呢?我试过这两个都没有运气.

<#assign my=JspTaglibs["/META-INF/mytaglib.tld"] />
<#assign my=JspTaglibs["/mynamespace"] />
Run Code Online (Sandbox Code Playgroud)

java jsp freemarker

6
推荐指数
1
解决办法
4669
查看次数

如何在Freemarker模板中创建一个列表

我有一组函数注释,我在迭代一个值列表时生成.我想在列表中捕获这些值"functions_names"并将其用于进一步处理.我怎样才能做到这一点?

谢谢

java freemarker

6
推荐指数
1
解决办法
7999
查看次数

是否可以在FreeMarker模板文件中设置调试点?

我的应用程序中的视图层的FreeMarker模板文件中有很多编码.

我想知道我是否可以使用Eclipse设置调试点.有没有可用于调试FreeMarker模板文件的好插件?

eclipse freemarker

6
推荐指数
1
解决办法
8069
查看次数

如何在Freemarker模板或javascript中以特定格式转换日期

从json,我得到的价值

"createdOn": "Jan 08 2015 20:40:56 GMT+0530 (IST)",
Run Code Online (Sandbox Code Playgroud)

我正在访问FTL

<#list variables as variable>
  <div class="reply">
   ${variable.createdOn}
  </div>
</#list>
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

Jan 09 2015 12:36:18 GMT+0530 (IST)
Run Code Online (Sandbox Code Playgroud)

我更喜欢的格式是 09-01-2015

我需要删除剩余的时间GMT,IST等.

如何在Freemarker模板或javascript中转换它.

更新

我试着像这样传递下面

${variable.createdOn?datetime?string("dd-MM-yyyy")}
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

Exception: java.text.ParseException - Unparseable date: "Jan 09 2015 12:36:18 GMT+0530 (IST)"
Run Code Online (Sandbox Code Playgroud)

任何帮助都是赞赏的.

谢谢

javascript freemarker date

6
推荐指数
2
解决办法
3万
查看次数

如何在 freemarker 中替换本地化字符串

我正在使用 spring 和 freemarker 并且有基本的工作。

我有一个类似的属性文件

help.text=For further information please see the <a href="{0}">help page</a>.
Run Code Online (Sandbox Code Playgroud)

我目前正在使用

${rc.getMessage("help.text")}
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何传入我的替换变量。你能帮我吗?

干杯,彼得

spring localization freemarker

5
推荐指数
1
解决办法
5743
查看次数

Freemarker - 访问对象的静态变量

我有一个简单的类:

public class MyClass {

     public final static long MAIN = 1;

     @Setter @Getter
     protected int id;
}
Run Code Online (Sandbox Code Playgroud)

@Setter @GetterlombokSetter 和 Getter 方法的注释。)

在 Freemarker 模板中,我想创建一个条件,如:

<#if myClassInstance.id == myClassInstance.MAIN>
Run Code Online (Sandbox Code Playgroud)

但是if表达式的右侧是根据 FreeMarker 未定义的。有没有办法做到这一点?谢谢!

freemarker

5
推荐指数
1
解决办法
7720
查看次数

FreeMarker 无法访问 javabean 的属性

根据文档,您应该能够将 javabean 传递给 FreeMarker 模板,并且它将能够访问 bean 的 getter。我一直在尝试这样做,但没有任何运气。这是我将 bean 传递给模板的代码。

public class Hello extends HttpServlet {
    public static final Logger LOGGER = Logger.getLogger(Hello.class.getName());

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            Configuration cfg = new Configuration();
            cfg.setDirectoryForTemplateLoading(new File(this.getServletContext().getRealPath("/templates")));
            cfg.setObjectWrapper(new DefaultObjectWrapper());
            cfg.setDefaultEncoding("UTF-8");
            cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
            cfg.setIncompatibleImprovements(new Version(2, 3, 20));  // FreeMarker 2.3.20

            final String name = req.getParameter("name");
            // This works when model is a Map, but not when it is a bean
            Model model = new Model();
            model.setUsername(name); …
Run Code Online (Sandbox Code Playgroud)

templates freemarker javabeans

5
推荐指数
1
解决办法
4490
查看次数

在 Java 中处理 String Freemarker 语法的最有效方法是什么

这是我们的用例。我们正在从数据库加载 freemarker 语法并对其进行处理。我们正在处理近一百万条记录。一切正常。但是当我分析应用程序时,我发现我的 freemarker 处理方法是瓶颈,并且花费了大部分时间。阅读了 freemarker 文档后,我得到了一些关于我的问题的提示。每次我进行处理时,我都会创建新的 freemarker.template.Template 对象(创建它似乎很昂贵)。我找不到这样做的正确/更有效的方法。

public FTLTemplateEngine() {
        cfg = new Configuration();      
    }    



public String process(String template, Map<String, Object> input) throws IOException, TemplateException {
        String rc = null;
        final Writer out = new StringWriter();      
        try {           
            final Template temp =new Template("TemporaryTemplate", new StringReader(template), cfg);
            temp.process(input, out);
        }
        catch (InvalidReferenceException e) {
                log.error("Unable to process FTL - " + template);
            throw new InvalidReferenceException("FTL expression has evaluated to null or it refers to something that doesn't exist.  - …
Run Code Online (Sandbox Code Playgroud)

java freemarker

5
推荐指数
1
解决办法
850
查看次数

FreeMarker Java 8 可选值支持

FreeMarker 是否支持 Java 8 中的 Optional 值?

例如,我有 String id,它的 getter 方法是这样的:

public Optional<String> getId() {
  return Optional.ofNullable(Id);
}
Run Code Online (Sandbox Code Playgroud)

我将如何在 .ftl 文件中引用它。似乎 {data.id} 找不到正确的 Optional 值。但给了我 Optional[1334586]

freemarker optional java-8

5
推荐指数
1
解决办法
2768
查看次数