1

キーと値のペアを入れるプロパティ バッグのようなものが必要です。そのようなオブジェクトのリストを作成し、Bean で初期化してから、リストを使用して JSF テンプレートでテーブルをレンダリングしたいと考えています。私はそれを行う方法を知っていますが、その場合のためにいくつかの特別なクラスを作成することは避けたいと思いOrderLineItemますList<OrderLineItem>. 新しいクラスを定義したくありません。

PHP では、StdClass を使用できます。
StdClass は、事前定義されたメンバーを持たない、PHP でまばらに文書化されたクラスです。

$object = new StdClass;
$object->foo = 'bar';

しかし、私の知る限り、Primefaces の<p:dataTable>リスト項目は getter を持つオブジェクトでなければなりません。を参照したい場合<h:outputText value="#{item.title}" />、リスト オブジェクトにはgetTitle()メソッドが必要です。

私の場合、回避策はありますか、それとも、生活を楽にするために特別なクラスを定義する必要がありますか?
ありがとう。

4

4 に答える 4

7

単純なキー/値テーブルが必要な場合は、HashMapが探しているものかもしれません。

Map<String, String> myMap = new HashMap<>();

myMap.put("foo", "bar");

System.out.println(myMap.get("foo")); // outputs "bar"

この例では、文字列を文字列に一致させますが、HashMaps を使用して任意の型を他の型にマップできます。Map<Object, Object>を作成して、何でもマップする弱く型付けされたマップを作成することもできます。しかし、ほとんどのユースケースでは、より専門的なフォームを使用することをお勧めします。

于 2013-01-29T12:18:25.510 に答える
4

必要なのはMap.

キーと値のペアを非常に簡単に保存できます。

Map<KeyClass, ValueClass> myMap = new HashMap<KeyClass, ValueClass>();

メソッドを使用してputデータを入れます。単純なString値を使用すると、次のようになります。

myMap.put("key", "value");
于 2013-01-29T12:22:59.890 に答える
1

匿名クラスを使用することをお勧めします。

return new HashMap<String, String>() {
  {
    this.put("key", "value");
  }
};
于 2013-01-29T15:18:09.367 に答える
1

あなたのことをよく理解できたかどうかわかりません。しかし、あなたは SelectItem または JsfMap を意味していると思います。

于 2013-01-29T12:19:36.133 に答える