首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsf2 +<托管-属性><属性-名称>

jsf2 +<托管-属性><属性-名称>
EN

Stack Overflow用户
提问于 2011-04-06 13:03:44
回答 2查看 4.4K关注 0票数 0

我在faces-config.xml中有一个映射的bean

代码语言:javascript
复制
<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的实现是:

代码语言:javascript
复制
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;
    }
}

但是,当我刷新我的应用程序时,我会得到这个错误:

代码语言:javascript
复制
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。有人能帮我吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2011-04-06 13:06:51

这是错误的

代码语言:javascript
复制
<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将在不存在的elements中搜索java.util.HashMap字段的getter/setter,因此错误

票数 1
EN

Stack Overflow用户

发布于 2012-11-20 23:34:14

您有两个选项,取决于您要如何建模类InputFormElementContainer

如果您需要“元素”作为列表:

代码语言:javascript
复制
<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>

或者,如果您需要“元素”属性成为Map:

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5566803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档