Voici comment vous feriez cela dans mon moteur de modèle open source, Chunk.
import com.x5.template.Theme;
import com.x5.template.Chunk;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
...
public void writeTemplatedFile() throws IOException
{
Theme theme = new Theme();
Chunk chunk = theme.makeChunk("my_template", "txt");
// remplacer les valeurs statiques ci-dessous par les entrées de l'utilisateur
chunk.set("name", "Lancelot");
chunk.set("favorite_color", "blue");
String outfilePath = getFilePath();
File file = new File(outfilePath);
FileWriter out = new FileWriter(file);
chunk.render(out);
out.flush();
out.close();
}
my_template.txt (placez simplement dans le classpath dans themes/my_template.txt)
Je m'appelle {$name}.
Ma couleur préférée est {$favorite_color}.
Sortie:
Je m'appelle Lancelot.
Ma couleur préférée est bleue.
Votre modèle peut être rendu un peu plus intelligent en ajoutant des |filtres et des :défauts à vos balises.
my_template.txt - exemple 2
Je m'appelle {$name|defang:[non fourni]}.
Ma couleur préférée est {$favorite_color|defang|lc:[non fournie]}.
Dans cet exemple, le filtre defang
supprime tout caractère qui pourrait contribuer à une attaque XSS. Le filtre lc
change le texte en minuscules. Et tout ce qui se trouve après les deux-points sera affiché en cas de valeur nulle.
Il existe un plugin Eclipse disponible pour éditer les modèles Chunk directement dans l'EDI Eclipse. Le plugin offre une coloration syntaxique et une vue d'ensemble pour les documents de modèle.
Chunk peut faire beaucoup plus, jetez un coup d'œil à la documentation pour une visite rapide. Divulgation complète : j'aime Chunk en partie parce que je l'ai créé.