herowzz 2008-08-01 10:52
浏览 127
已采纳

freemarker读取bean出错

Test.java

package org.test;

import java.util.*;
import java.io.*;
import freemarker.template.*;

public class Test {

public static void main(String[] args) throws Exception {
    Configuration cfg = new Configuration();
    cfg.setDirectoryForTemplateLoading(new File("E:/new"));
    cfg.setObjectWrapper(new DefaultObjectWrapper());
    Template temp = cfg.getTemplate("test.ftl");

    User user = new User();
    user.setId("1");
    user.setAge("88");
    user.setName("ttt");
    Map root = new HashMap();
    root.put("user", user);

    Writer out = new OutputStreamWriter(System.out);
    temp.process(root, out);
    out.flush();
    System.out.println("\nOK!");
}

}

class User {
private String id;
private String name;
private String age;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

}

test.ftl



Welcome


Welcome


id:${user.id}

name:${user.name}

age:${user.age}


错误:

2008-8-1 10:50:44 freemarker.log.JDK14LoggerFactory$JDK14Logger error
严重:

Expression user.id is undefined on line 7, column 6 in test.ftl.

The problematic instruction:

==> ${user.id} [on line 7, column 4 in test.ftl]

Java backtrace for programmers:

freemarker.core.InvalidReferenceException: Expression user.id is undefined on line 7, column 6 in test.ftl.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.Expression.getStringValue(Expression.java:118)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.Environment.process(Environment.java:188)
at freemarker.template.Template.process(Template.java:237)
at org.test.Test.main(Test.java:23)
Exception in thread "main"
Expression user.id is undefined on line 7, column 6 in test.ftl.

The problematic instruction:

==> ${user.id} [on line 7, column 4 in test.ftl]

Java backtrace for programmers:

freemarker.core.InvalidReferenceException: Expression user.id is undefined on line 7, column 6 in test.ftl.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.Expression.getStringValue(Expression.java:118)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.Environment.process(Environment.java:188)
at freemarker.template.Template.process(Template.java:237)
at org.test.Test.main(Test.java:23)

  • 写回答

3条回答 默认 最新

  • tianzaghi 2008-08-04 19:55
    关注

    :twisted: 我还特意copy代码下来跑了跑。。。

    汗!!!基础知识复习:

    class前面没任何修饰符,那它默认的是private

    public 和 private 这两个修饰符是起访问限制的作用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题