【问题标题】:selectOneMenu HTTP Status 500 - Don't know how to iterate over supplied "items"selectOneMenu HTTP 状态 500 - 不知道如何迭代提供的“项目”
【发布时间】:2013-06-22 10:14:58
【问题描述】:

我正在尝试设置一个 selectOneMenu 列表,该列表由标签和类别 ID 中的类别名称填充,我正在这样做:

<h:selectOneMenu id="categorie" value="#{adminRealisationController.categorie }">
            <c:forEach items="#{listeCats}" var="cat">
                <f:selectItem itemLabel="#{cat.nom }" itemValue="#{cat.id }"/>
            </c:forEach>
            </h:selectOneMenu>

这个 listeCats 设置了一个 jsf bean,这是我从 db 中提取列表的方法

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); 
        CategoriesPL C = (CategoriesPL) beanFactory.getBean("categoriesPL");


        setListeCats(C.findAll());
        titre="";slug="";categorie.setId(2);description="";

        FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("listeCats", getListeCats());

        return "nouveauView";

该属性在 faces xml 中设置为 Integer,当我尝试提交表单时出现此错误:

【问题讨论】:

    标签: jsf selectonemenu


    【解决方案1】:

    这就是f:selectItems存在的原因,你应该替换它

     <c:forEach items="#{listeCats}" var="cat">
         <f:selectItem itemLabel="#{cat.nom }" itemValue="#{cat.id }"/>
     </c:forEach>
    

    由此(使用 JSF 2.0 时)

    <f:selectItems value="#{listeCats}" var="cat" itemLabel="#{cat.nom}" itemValue="#{cat.id}" />
    

    或者通过这个(使用 JSF 1.X 时)

    <f:selectItems value="#{listeCats}" />
    

    在后面,您还需要返回一个List&lt;SelectItem&gt;

    public List<SelectItem> getListeCats()
    {
        List<SelectItem> items = new ArrayList();
    
        items.add(new SelectItem("value","label"));
    
        return items;
    }
    

    注意:这只是一个例子,它根本没有效率。唯一要记住的是,您需要将您的Object 列表转换为SelectItem。此外,value="#{adminRealisationController.categorie}" 将收到 String 而不是您的 Object,因此您需要对其进行转换。

    更多信息:

    【讨论】:

    • 然后我得到“根据 TLD 对标签 selectItems 的属性 var 无效”。这是因为我使用的是 JSF 1.2 ??
    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2019-10-25
    相关资源
    最近更新 更多