我想从String内容生成一个HTML文件。
但我不想在Java类中对HTML标记(如<html>
,<body>
,<tr>
,<td>
等)进行硬编码。同时,我也不想使用任何第三方库。
这是一个简单的Java项目(没有Web项目风格)。
在我看来,我正在考虑使用属性文件来配置所有HTML标记,并在我的Java类中使用这些属性。
如果有人有任何其他方法可以做到这一点,请通过一个简单的例子给我建议。
答案 0 :(得分:0)
我一直在为我的一个项目尝试这些行(生成收据的图像,通过HTML / CSS,因为wkhtmltopdf可以将其呈现为PNG)。我想你会发现尝试抽象你的字符串生成器以处理CSV,XML等未来的潜在输出会使你的方法过于复杂。我现在有了通过JSON,XML和HTML处理的对象,它们都需要不同的方法。对于JSON,我依赖于Spring的转换。对于XML,我使用JAXB。对于HTML,我一直在做一些人在模板评论中提到的内容。
e.g。
String template = "<html><head/><body><h1>Hello %s</h1></body></html>";
System.out.println(String.format(template, "World");
正如评论中所建议的那样,您可以从文件中加载该模板字符串,但这会很快变得复杂,例如,如果您的第一个对象中有对象需要生成自己的HTML:
public Class Container{
private String name;
private OtherClass other;
public convertToHtml(){
String template = "<html><head/><body><h1>Hello %s. Other: %s</h1></body></html>";
return String.format(template, name, other.convertToHtml());
}
}
public Class OtherClass{
private String stuff;
public convertToHtml(){
String template = "<span>%s</span>";
return String.format(template, stuff);
}
}