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...

String を String に変換する理由がわかりません。

4

2 に答える 2

2

(コンバーターなしvalueで)にバインドすることはできませんh:inputTextArrayListフォームを (ボタンをクリックして) 送信すると、JSF が呼び出しsetFriends(String)を試み、ここでこれExceptionが発生します。h:inputTextこの 2 つの要素を使って何を達成しようとしているのかを考えてみてください。

于 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 に答える