[JAVA] Utilisez des modèles sur le chemin de classe avec Apache Velocity

https://stackoverflow.com/questions/2931516/loading-velocity-template-inside-a-jar-file

build.gradle


dependencies {
    implementation 'org.apache.velocity:velocity:1.7'
}

/src/main/resources/templates/hoge.vm


key = $key
import java.io.IOException;
import java.io.StringWriter;
import java.util.Properties;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.context.Context;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;

public class Main {

  public static void main(String[] args) {
    Properties p = new Properties();
    p.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
    p.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
    Velocity.init(p);

    Context context = new VelocityContext();
    context.put("key", "value0001");

    Template template = new Template();
    template = Velocity.getTemplate("templates/hoge.vm", "UTF-8");

    try (StringWriter body = new StringWriter();) {
      template.merge(context, body);
      body.flush();
      System.out.println(body.toString());;
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Recommended Posts

Utilisez des modèles sur le chemin de classe avec Apache Velocity
Programmation avec ruby (en route)
FileUpload avec Rest sur Apache Wicket
Vérifiez le fonctionnement à l'aide de la jetée avec Maven.
Essayez d'utiliser le service sur Android Oreo
Utilisation de JupyterLab + Java avec WSL sous Windows 10
Remarques sur l'utilisation de FCM avec Ruby on Rails
Essayez d'utiliser la télécommande Wii en Java
Une note rapide sur l'utilisation de jshell avec l'image Docker officielle du JDK
ValidationMessages.properties ne doit pas être multiple sur le chemin de classe
Utilisation de JUnit à partir de la ligne de commande sur Ubuntu
Sortez avec un suffixe sur la méthode
Publiez l'application avec ruby on rails
Spécifiez ClassPath lors de l'utilisation de jupyter + Java avec WSL
Sortez avec un suffixe sur la méthode 2
Correspond aux annotations sur l'interface avec Spring AOP
Jusqu'à ce que vous exécutiez l'exemple de code Apache Velocity
Déterminez la page actuelle avec Ruby on Rails
Afficher la liste en setDétails à l'écran avec ressort-sécurité
Essayez d'utiliser l'attribut de requête Ruby on Rails