3

Railo 3.3.1.000でjopendocument 1.2を使用しています

http://www.jopendocument.org/start_text_2.htmlから

List<Map<String, String>> months = new ArrayList<Map<String, String>>();
months.add(createMap("January", "-12", "3"));
months.add(createMap("February", "-8", "5"));
months.add(createMap("March", "-5", "12"));
months.add(createMap("April", "-1", "15"));
months.add(createMap("May", "3", "21"));
template.setField("months", months);

そのコードをcfmlで記述する方法、またはjopendocumentの経験がある人は、cfmlでodtテンプレートファイルに行を追加しますか?

4

1 に答える 1

1

List<Map<String, String>> months = new ArrayList<Map<String, String>>();

CF 用語では、そのコードは構造体の配列を作成します。Java は強く型付けされているため、コードはジェネリックを使用して、それぞれに含まれるオブジェクトの型を示します。

    List< Map<...> >          // Array containing structures 
    Map< String, String >     // Structure containing "String" values

幸いなことに、CF 配列はjava.util.List内部的にオブジェクトであり、構造体はjava.util.Mapオブジェクトです。したがって、適切なキーと値を持つ構造体の CF 配列を作成するだけで済みます。次に、配列を に渡しtemplate.setField(...)ます。

構造でどのキーを使用すればよいかわからなかったので、「test.odt」テンプレートをjOpenDocument-template-1.2.zipからダウンロードしました。各構造には、テーブルの各列に 1 つずつ、3 つのキーが含まれている必要があることが明らかになりました: nameminmax構造体に文字列を入力する限り、これは機能するはずです。

// Create an array of structures. Each structure represents a table row. 
// The key names for columns 1-3 are: "name", "min", "max"
months = [
            {name="January", min="-12", max="3"}
            , {name="February", min="-8", max="5"}
            , {name="March", min="-5", max="12"}
            , {name="April", min="-1", max="15"}
            , {name="May", min="3", max="21"}
            , {name="June", min="5", max="32"}
        ];  

// populate table rows
template.setField("months", months);
于 2011-11-24T19:45:56.127 に答える