2012-02-08 4 views
0

私のJava Webアプリケーションで確認メールを実装する必要があります。私はユーザーに送信する必要がある電子メールについています。確認メール - templaeを作成してオブジェクトと結合する

確認メールのテンプレートをUserオブジェクトと組み合わせる必要があります。これは確認メールのHTMLコンテンツとなります。
私はテンプレートエンジンとしてxsltを使うことを考えましたが、私はUserオブジェクトのxmlフォームを持っておらず、Userインスタンスからxmlを作成する方法を実際には分かりません。
私はjspについて考えましたが、どのようにjspページをオブジェクトでレンダリングし、結果としてhtmlを取得しますか?

templaeを作成してオブジェクトと組み合わせるために私が使用できるパッケージは何ですか?

答えて

0

、私は自分の小さなかつ適切なutilの書くことにしたデバッグの他の複雑なコード:

public class StringTemplate { 
    private String filePath; 
    private String charsetName; 
    private Collection<AbstractMap.SimpleEntry<String, String>> args; 

    public StringTemplate(String filePath, String charsetName, 
          Collection<AbstractMap.SimpleEntry<String, String>> args) { 
     this.filePath = filePath; 
     this.charsetName=charsetName; 
     this.args = args; 
    } 

    public String generate() throws FileNotFoundException, IOException { 
     StringBuilder builder = new StringBuilder(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       getClass().getResourceAsStream(filePath),charsetName)); 
     try { 
      String line = null; 

      while ((line = reader.readLine()) != null) { 
       builder.append(line); 
       builder.append(System.getProperty("line.separator")); 
      } 
     } finally { 
      reader.close(); 
     } 
     for (AbstractMap.SimpleEntry<String, String> arg : this.args) { 
      int index = builder.indexOf(arg.getKey()); 
      while (index != -1) { 
       builder.replace(index, index + arg.getKey().length(), arg.getValue()); 
       index += arg.getValue().length(); 
       index = builder.indexOf(arg.getKey(), index); 
      } 
     } 
     return builder.toString(); 
    } 
} 
0

複雑ではありませんでした思い出すように見えますか? 5つの文字列フィールド(たとえば)の場合、これらを文字列パラメータとして変換に渡すだけで、JavaデータからXMLを作成する必要がなくなります。

Java XSLTプロセッサは、通常、XSLTコード内からJavaオブジェクトのメソッドを呼び出す方法を提供します。したがって、Javaオブジェクトをスタイルシートのパラメータとして提供し、拡張機能を使用してそのメソッドを呼び出すことができます。詳細はプロセッサ固有です。代わりに新しいコードを学習する

+0

どのように?任意の例を提供できますか? – Naor

+0

詳細はプロセッサ固有のものだとお伝えしました。つまり、プロセッサーを知らなくても詳細を伝えることはできません(プロセッサーの詳細を教えてくれたり、プロセッサーの詳細を教えてくれないかもしれません) –

関連する問題