0

私はfaces-config.xmlにマップされたBeanを持っています

<managed-bean>
  <managed-bean-name>beanName</managed-bean-name>
  <managed-bean-class>java.util.HashMap</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
  <managed-property>
   <property-name>elements</property-name>
   <map-entries>
    <key-class>java.lang.String</key-class>
    <value-class>path.InputFormElementContainer</value-class>
   </map-entries>
  </managed-property>
 </managed-bean>

Javaでの実装は次のとおりです。

public class InputFormElementContainer implements List<InputFormElement>, Serializable{


    private static final long serialVersionUID = -4685106549564090233L;
    private List<InputFormElement> elements;

    //Empty Constructor
    public InputFormElementContainer() {
        elements = new ArrayList<InputFormElement>();
    }
    public List<InputFormElement> getElements() {
        return elements;
    }
    public void setElements(List<InputFormElement> elements) {
        this.elements = elements;
    }
}

しかし、アプリケーションを更新すると、次のエラーが発生します。

com.sun.faces.mgbean.ManagedBeanCreationException: No se puede crear el bean administrado beanName.  Se han encontrado los problemas siguientes:
     - No existe la propiedad elements para el bean administrado beanName.

英語への翻訳は次のようになります。次の問題により、管理対象のbeanNameを作成できません:beanNameのelemtsプロパティが存在しません。

この問題は、JSF2への移行時に発生しました。チュートリアルを読んでいましたが、JSF2でこのmanage-beanを適切に作成する方法がわかりませんでした。誰か助けてもらえますか?
前もって感謝します!

4

2 に答える 2

1

違います

<managed-bean-name>beanName</managed-bean-name>
  <managed-bean-class>java.util.HashMap</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
  <managed-property>
   <property-name>elements</property-name>

ここで jsf は、存在しないjava.util.HashMapelementsのフィールドのゲッター/セッターを検索するため、エラー

于 2011-04-06T13:06:51.950 に答える
0

クラス InputFormElementContainer をモデル化する方法に応じて、2 つのオプションがあります。

「要素」をリストにする必要がある場合:

<managed-bean>
  <managed-bean-name>beanName</managed-bean-name>
  <managed-bean-class>java.util.HashMap</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
  <managed-property>
    <property-name>elements</property-name>
    <property-class>java.util.ArrayList</property-class>
    <list-entries>
      <value-class>path.InputFormElementContainer</value-class>
      <value>...</value
      ...
    </list-entries>
  </managed-property>
</managed-bean>

または、「要素」プロパティをマップにする必要がある場合:

<managed-bean>
      <managed-bean-name>beanName</managed-bean-name>
      <managed-bean-class>java.util.HashMap</managed-bean-class>
      <managed-bean-scope>view</managed-bean-scope>
      <managed-property>
        <property-name>elements</property-name>
        <property-class>java.util.HashMap</property-class>
        <map-entries>
          <key-class>java.lang.String</key-class>
          <value-class>path.InputFormElementContainer</value-class>
          <map-entry>
            <key></key>
            <value></value>
          </map-entry>
        </map-entries>
      </managed-property>
    </managed-bean>
于 2012-11-20T23:34:14.830 に答える