我有一个填充了List的selectmanylistbox,当我尝试提交表单时,我得到了错误"Target model Type is no a Collection or Array"
(以及控制台中的"The UISelectMany value should be an array or a collection type, the actual type is java.lang.String"
,尽管我正在使用集合...
非常感谢您的帮助
jsf页面:
<td>People list</td>
<td>
<h:selectManyListbox value=" #{people.selectedPeople}" size="3">
<f:selectItems value="#{people.peopleList}"/>
</h:selectManyListbox>
</td>
我的托管bean
@ManagedBean(name="people")
@RequestScoped
public class People implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> peopleList;
private List<String> selectedPeople;
public People(){
peopleList = Arrays.asList("one", "two", "three", "four", "five");
}
// getters , setters
}
答案 0 :(得分:3)
在你的<h:selectManyListbox>
中,你的值应该是一个字符串数组。由于一些奇怪的原因,JSF不喜欢使用Lists。我知道这一点,因为前几天我在PrimeFaces中遇到了<p:selectManyCheckbox>
类似的问题。
如果您从private List<String> selectedPeople;
更改为private String[] selectedPeople;
(并根据需要更改getter和setter),它应该可以正常工作。
编辑:如果不这样做,我只是注意到value=" #{people.selectedPeople}"
中有空格,这也可能是问题的一部分。