用于文本模板的简单java库?
我需要模板一些电子邮件文本。没什么特别的,只是用真正的值替换像用于文本模板的简单java库?,java,templates,text,Java,Templates,Text,我需要模板一些电子邮件文本。没什么特别的,只是用真正的值替换像@name@这样的东西。没有图片,没有花哨的格式等等 您可以推荐什么java库?越简单越好。你试过了吗?你可以试一下。我在电子邮件模板引擎中使用了这两种方法。它们为基本用例提供了简单的语法,但以后可能会变得相当复杂 在这两者中,我个人更喜欢Freemarker,因为他们在提供各种不同的内置程序方面做得非常好,使数字和文本的格式变得非常简单。试试ApacheVelocity或Freemarker,它们会很有帮助,对我来说,我正在使用Fr
@name@
这样的东西。没有图片,没有花哨的格式等等
您可以推荐什么java库?越简单越好。你试过了吗?你可以试一下。我在电子邮件模板引擎中使用了这两种方法。它们为基本用例提供了简单的语法,但以后可能会变得相当复杂
在这两者中,我个人更喜欢Freemarker,因为他们在提供各种不同的内置程序方面做得非常好,使数字和文本的格式变得非常简单。试试ApacheVelocity或Freemarker,它们会很有帮助,对我来说,我正在使用Freemarker同意,ApacheVelocity是嵌入式环境的一个很好的调用
如果您想要一个独立的产品,还可以使用Apache的Ant。它通过应用替换筛选器来减少复制任务中的模板。已建议的库的无库替代方案:。是另一个选项。给出了一些基本示例和语法
StringTemplate hello = new StringTemplate("Hello, $name$",
DefaultTemplateLexer.class);
hello.setAttribute("name", "World");
System.out.println(hello.toString());
自己动手做非常简单:
public class Substitution {
public static void main(String[] args) throws Exception {
String a = "aaaa@bbb@ccc";
// This can be easiliy FileReader or any Reader
Reader sr = new StringReader(a);
// This can be any Writer (ie FileWriter)
Writer wr = new StringWriter();
for (;;) {
int c = sr.read();
if (c == -1) { //EOF
break;
}
if (c == '@') {
String var = readVariable(sr);
String val = getValue(var);
wr.append(val);
}
else {
wr.write(c);
}
}
}
/**
* This finds the value from Map, or somewhere
*/
private static String getValue(String var) {
return null;
}
private static String readVariable(Reader sr)throws Exception {
StringBuilder nameSB = new StringBuilder();
for (;;) {
int c = sr.read();
if (c == -1) {
throw new IllegalStateException("premature EOF.");
}
if (c == '@') {
break;
}
nameSB.append((char)c);
}
return nameSB.toString();
}
}
你得把它擦亮一点,但仅此而已