かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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才になります。