Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java p:orderlist和会话范围的支持bean存在问题_Java_Jsf_Primefaces - Fatal编程技术网

Java p:orderlist和会话范围的支持bean存在问题

Java p:orderlist和会话范围的支持bean存在问题,java,jsf,primefaces,Java,Jsf,Primefaces,我有一个会话范围的托管bean,名为MyController。它引用了一个名为MyModel的POJO。MyModel包含一些其他POJO的ArrayList,我将其绑定到p:orderlist,如下所示: <p:orderList value="#{myController.myModel.list}" var="item" itemValue="#{item}" converter="#{itemConverter}"">

我有一个会话范围的托管bean,名为MyController。它引用了一个名为MyModel的POJO。MyModel包含一些其他POJO的ArrayList,我将其绑定到p:orderlist,如下所示:

                <p:orderList value="#{myController.myModel.list}" var="item" itemValue="#{item}" converter="#{itemConverter}"">
                    <f:facet name="caption">some title</f:facet>

                    <p:column>
                        #{item.text}
                    </p:column>
                </p:orderList>
@ManagedBean
@RequestScoped
public class ItemConverter implements Converter {

    @ManagedProperty(value="#{myController.myModel.list}")
    private List<Item> list;


    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        Iterator i = list.iterator();
        int id = Integer.parseInt(value);

        while (i.hasNext()) {
            Object currentObject = i.next();
            if (((Item) currentObject).getId() == id) {
                return currentObject;
            }
        }

        return null;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        return Integer.toString(((Item) value).getId());
    }

}

问题的原因是导入错误。我导入了javax.annotations.ManagedBean,而不是导入javax.faces.bean.ManagedBean。因此,如果有人通过谷歌搜索问题的解决方案而进入此页面,请首先检查您的导入。

您在
getAsObject()
中有一个主要错误,但这并不能解释为什么列表中会出现未转换的字符串。您在服务器日志中有任何异常吗?不幸的是,我正在使用Netbeans,它无法在Windows 7 x64下打印应用程序的任何输出。有关于主要错误的提示吗?我注意到我的转换器无法正常工作,尝试手动实例化和使用它解决了这个问题。我盲目地遵循IDE的第一个建议,导入了javax.annotations.ManagedBean而不是javax.faces.bean.ManagedBean。