0

我有一个简单的问题,将输入中的值添加到ArrayList.

我有一个这样的 POJO:

public class Person {

    private String firstName;
    private String lastName;
    private List<String> friends=new ArrayList<>();
    //getters and setters

然后是支持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>

当我尝试 addPerson 时,我收到此错误:

summary=(Conversion Error setting value...

我不明白为什么将字符串转换为字符串?

4

2 回答 2

2

你不能绑定valueh:inputTextArrayList没有转换器)。当您提交表单(通过单击按钮)时,JSF 会尝试调用setFriends(String),这就是发生这种Exception情况的地方。试着弄清楚你想用这两个h:inputText元素实现什么。

于 2013-04-01T20:39:01.570 回答
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

于 2013-04-02T07:13:52.210 回答