2017-05-29 11 views
-1

私は、1つのHTMLファイルを文字列コンテンツとして生成したいと考えています。 しかし、JavaクラスにHTMLタグ(<html><body><tr><td>など)をハードコードしたくありません。同時に、私はまたそれのための第三者図書館を使用したくないです。クラスのHTMLタグをハードコーディングすることなく、JavaクラスからHTMLファイルを生成するにはどうすればよいですか?

これは単純なJavaプロジェクトです(Webプロジェクトのフレーバーはありません)。

私の考えでは、プロパティファイルを使用してすべてのHTMLタグを設定し、それらのプロパティをJavaクラスで使用することを考えています。

誰か他の方法でこれを行う場合は、私に簡単な例を教えてください。

+0

HTMLテンプレートを使用して、必要に応じてテンプレートにコンテンツを置き換えてみてください。 http://freemarker.org/ – Parth

+0

https://jsoup.org/ –

+0

のように詳しく説明してください。1)HTMLタグをハードコードせずにHTMLを生成する方法2)なぜサードパーティのライブラリが問題にならないのか。 3)プロパティファイルが問題#1をどのようにサポートすると思いますか? –

答えて

0

私は自分のプロジェクトの1つ(wkhtmltopdfはPNGとしてレンダリングできるため、HTML/CSSを通したレシートの画像を作成しています)でこれらの行を試してきました。 CSV、XMLなどの潜在的な将来の出力を処理するために文字列ジェネレータを抽象化しようとすると、メソッドが複雑になることがわかります。 JSON、XML、およびHTMLを使って処理するオブジェクトがありますが、それらにはそれぞれ異なるアプローチが必要です。 JSONの場合、私はSpringの変換に依存しています。 XMLの場合、私はJAXBを使用します。 HTMLについては、私はテンプレートを使ってコメントした人の何人かが何をしているのかを見てきました。

これもコメントで示唆

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); 
    } 
} 
関連する問題