<f:selectitems>返回验证错误

时间:2016-12-06 14:27:00

标签: html listview jsf myfaces

**各位大家好, 我在这个和其他论坛中环顾四周,但我无法解决这个问题:我想选择列表的一些元素e将所选元素放在另一个列表中。这应该是一个简单的事情,但我有一个错误,我不知道为什么以及如何解决它。 这是我的控制器:

@ManagedBean
@ViewScoped
public class Controller{

    private ArrayList<String> keyColumns;
    private List<String> keyColumnsAvailables;
    //getters and setters
}

这是我的xhtml页面:

 <div>
    <f:view>
        <h:selectManyListbox value="#{controller.keyColumns}">
          <f:selectItems value="#{controller.keyColumnsAvailables}"/>
        </h:selectManyListbox>
   </f:view>
 </div>

现在,可用列表列表正常打印,但是当我选择一些项目并按下de按钮时,页面显示:验证错误。

我尝试使用Arrays代替Lists(同样的问题),从静态元素列表中选择项目(使用)并且它可以工作,但是列表是在页面的另一个表中设置的,所以它不能是静态的

keyColumnsAvailable是一个从facade方法填充的ArrayList,它从MongoCollection中获取一些信息。如果我在控制器的方法中添加一些元素,如:

public List<String> lista(){

    this.keyColumns1 = new ArrayList<>();
    this.keyColumns1.addAll(this.eFacade.getKeyColumnsFile(String name));


    return keyColumns1;
}

我使用:

 <div>
    <f:view>
        <h:selectManyListbox value="#{controller.keyColumns}">
          <f:selectItems value="#{controller.lista()}"/>
        </h:selectManyListbox>
   </f:view>
 </div>

它有效。但我必须从上传的文件中选择名称,谁给出可用列的列表,在这种情况下我得到验证错误,即使我已经验证列表不是空或空。

要重新计算,我选择一个文件名为e的文件,我从Facade中检索mongoDB中的一些信息(返回类型是一个列表)。这个列表是从Facade方法中正确填充的,但是当我去从列表中选择一些信息 - &gt;验证错误。

其他答案对我没有帮助,你有什么想法吗?

由于

0 个答案:

没有答案