**各位大家好, 我在这个和其他论坛中环顾四周,但我无法解决这个问题:我想选择列表的一些元素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;验证错误。
其他答案对我没有帮助,你有什么想法吗?
由于