かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Velocityを使ったプログラム

Javaのコード

    private void execute() {
        try {
            InputStream is = this.getClass().getResourceAsStream(
                    "velocity.properties");
            Properties prop = new Properties();
            prop.load(is);
            Velocity.init(prop);

            Template template = Velocity.getTemplate(
                    "sample/velocity/template.vm",
                    "Windows-31J");

            Person p = new Person(12, "太郎"); // Personクラスは, ageとnameプロパティを持つだけ
            VelocityContext context = new VelocityContext();
            context.put("person", p);

            StringWriter sw = new StringWriter();
            template.merge(context, sw);
            System.out.println(sw.toString());

        } catch (Exception e) {
        }
    }

velocity.properties

# velocity.logを出力しない
runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogSystem

# classpath上から読み込む
resource.loader = class

class.resource.loader.description = Velocity Classpath Resource Loader
class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

template.vm

こんにちは。
私は${person.name}です。
今年で、${person.age}才になります。

実行結果

こんにちは。
私は太郎です。
今年で、12才になります。