2

JSF 2.0 Mojarra を使用しています。

リスト型のプロパティを含むマネージド Bean を作成する必要があります。Faces-Config.xml のいくつかの値を使用して、このリストを初期化する必要があります。私の質問は、これを達成するためにクラスの構造がどのように見える必要があるかということです。

例えば、

public class Items{
     private List<Item> itemList = new ArrayList<>();

     public List<Item> getItemList(){
     return itemList;
}

public void setItemList (List<Item> itemList){
     this.itemList = itemList;
}

//Methods needed for adding and removing type Item elements to/from itemList.
//What is the convention, so that JSF can initialize these values?

public class Item{
     //This is a nested class
     private String itemProperty1;
     private String itemProperty2;

     //Getters and Setters for itemProperty1 and itemProperty2 have been omitted
     //for brevity.
   }
}

さらに、クラスを適切に設定したら。Faces-Config.xml の正しい構造は何ですか。たとえば、次のようにする必要があります。

 <managed-bean>
   <managed-bean-name>items</managed-bean-name>
   <managed-bean-class>com.bricks.model.Items</managed-bean-class>
   <managed-bean-scope>Application</managed-bean-scope>
   <managed-property>
     <property-name>itemList</property-name>
     <value-class>com.brick.model.Items.Item</value-class>
     <list-entries>
       <value>item1</value>
       <value>item2</value>
     </list-entries>
  </managed-property>
</managed-bean>

<managed-bean>
  <managed-bean-name>item1</managed-bean-name>
  <managed-bean-class>com.bricks.model.Item</managed-bean-class>
  <managed-bean-scope>None</managed-bean-scope>
  <managed-property>
    <property-name>itemProperty1</property-name>
    <value>value1</value>
  </managed-property>
  <managed-property>
    <property-name>itemProperty2</property-name>
    <value>value2</value>
  </managed-property>
</managed-bean>

 <!--Repeat for item2 -->

助けてくれてありがとう。

4

1 に答える 1

0

リスト項目をプレーンなバニラ文字列として参照しています。

<value>item1</value>
<value>item2</value>

Itemマネージドインスタンスに解決されるように、EL でそれらを参照する必要があります。

<value>#{item1}</value>
<value>#{item2}</value>
于 2012-06-29T00:55:04.010 に答える