Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java类生成HTML文件而不在类中硬编码HTML标记?_Java_Html - Fatal编程技术网

如何从Java类生成HTML文件而不在类中硬编码HTML标记?

如何从Java类生成HTML文件而不在类中硬编码HTML标记?,java,html,Java,Html,我想生成一个HTML文件形式的字符串内容。 但是我不想在Java类中硬编码HTML标记(比如,,,等等)。同时,我也不想使用任何第三方库 这是一个简单的Java项目(没有web项目风格) 在我看来,我正在考虑使用一个属性文件来配置所有HTML标记,并在Java类中使用这些属性 如果有人有其他方法可以做到这一点,请通过一个简单的例子向我推荐。我已经在我的一个项目中尝试了这些方法(生成收据的图像,通过HTML/CSS,因为wkhtmltopdf可以将其呈现为PNG)。我想您会发现,试图抽象字符串生成

我想生成一个HTML文件形式的字符串内容。 但是我不想在Java类中硬编码HTML标记(比如
等等)。同时,我也不想使用任何第三方库

这是一个简单的Java项目(没有web项目风格)

在我看来,我正在考虑使用一个属性文件来配置所有HTML标记,并在Java类中使用这些属性


如果有人有其他方法可以做到这一点,请通过一个简单的例子向我推荐。

我已经在我的一个项目中尝试了这些方法(生成收据的图像,通过HTML/CSS,因为wkhtmltopdf可以将其呈现为PNG)。我想您会发现,试图抽象字符串生成器来处理CSV、XML等未来的潜在输出将使您的方法过于复杂。我现在通过JSON、XML和HTML处理对象,它们都需要不同的方法。对于JSON,我依赖于Spring的转换。对于XML,我使用JAXB。对于HTML,我一直在用模板做一些人在评论中提到的事情

e、 g

String template=“Hello%s”;
System.out.println(String.format(模板“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);
    }
}
公共类容器{
私有字符串名称;
私人或其他类别;
公共转换为HTML(){
字符串模板=“你好%s。其他:%s”;
返回String.format(模板、名称、其他.convertToHtml());
}
}
公共类其他类{
私人字符串的东西;
公共转换为HTML(){
字符串模板=“%s”;
返回String.format(模板,stuff);
}
}

尝试使用HTML模板,并根据需要将内容替换为该模板。如需详细说明1)如何在不硬编码任何HTML标记的情况下生成一些HTML;2) 为什么第三方图书馆是不可能的;3)您希望属性文件如何帮助解决问题#1?制作html模板文件,用java阅读此文件,将类数据写入模板(在特定位置)并保存。这种方法对于简单类来说很简单。如果您的类很复杂(继承、实现、内部子类…),您将越来越努力地工作@凯文安德森;1) 我试图避免在java类中硬编码html标记,因为将来可能需要任何其他格式,如:csv、xml。这样以后就不必一次又一次地更新java类了。
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);
    }
}