我在将输入值添加到ArrayList
时遇到了一个简单的问题。
我有一个像这样的POJO:
public class Person {
private String firstName;
private String lastName;
private List<String> friends=new ArrayList<>();
//getters and setters
然后Backing bean:
public class backingBean{
Person p=new Person();
public void addPerson(){
for(String friend:p.getFriends)
System.out.println(friend);
}
}
和视图
<h:form>
<fieldset>
<h:panelGrid columns="2">
<h:outputText value="Name" />
<h:inputText value="{backingBean.person.firstName}"/>
<h:outputText value="LastName" />
<h:inputText value="#{backingBean.person.lastName}"/>
<h:outputText value="Friends" />
<h:inputText value="#{backingBean.person.friends}" />
<h:inputText value="#{backingBean.person.friends}" />
</h:panelGrid>
<h:commandButton value="Add"
action="#{backingBean.addPerson}" />
</fieldset>
</h:form>
当我尝试添加角色时,我收到此错误:
summary=(Conversion Error setting value...
我不明白为什么将String转换为String?
答案 0 :(得分:2)
您无法将value
的{{1}}绑定到h:inputText
(无转换器)。当您提交表单(通过单击按钮)时,JSF会尝试调用ArrayList
,这就是setFriends(String)
发生的位置。尝试使用这两个Exception
元素找出您要实现的目标。
答案 1 :(得分:0)
如果你想添加2个朋友,只需在辅助bean中创建2个不同的变量:
private String friend1;
private String friend2;
然后将它们添加到addPerson中,如下所示:
List<String> friends=new ArrayList<String>();
friends.add(friend1);
friends.add(friend2);
p.setFriends(friends);
未经测试可能存在一些错误。
编辑:
如果这不满足你,你可以看看这个@BalusC ANSWER