Java 在列表中添加值<;字符串>;动态地

Java 在列表中添加值<;字符串>;动态地,java,Java,每次生成新字符串,但列表的值为空时 <h:dataTable value="#{add.periods}" var="prd"> <h:column><h:inputText value="#{prd}" /></h:column> </h:dataTable> <h:commandButton value="add" action="#{add.addList}" /> <h

每次生成新字符串,但列表的值为空时

<h:dataTable value="#{add.periods}" var="prd">
        <h:column><h:inputText value="#{prd}"  /></h:column>
    </h:dataTable>
    <h:commandButton value="add" action="#{add.addList}" />
    <h:commandButton value="submit" action="#{add.submit}" />
</h:dataTable>    

实体添加周期:对象添加

private List<String> periods = new ArrayList<String>();
    @ElementCollection
     public List<String> getPeriods() 
     {         
            return periods;
     }
        public void setPeriods(List<String> periods)      
        {

         this.periods=periods;
         }

         public void addList() 
         { 

          periods.add(new String());

         }
          public void submit()
          {
          System.out.println("periods..................................: " +periods);
           }
private List periods=new ArrayList();
@元素集合
公共列表getPeriods()
{         
重现期;
}
公共作废设置期间(列出期间)
{
这个。周期=周期;
}
公共void addList()
{ 
添加(新字符串());
}
公开作废提交()
{
系统输出打印项次(“期间:”+期间);
}
控制台上的消息:添加2次后

periods..................................: [, ] 期间:[,] 它没有添加空值(不是空引用)-但没有添加有用的值:

你希望它在什么方面有用?您不应该添加一个有用的字符串值而不仅仅是一个新的空字符串吗?

它没有添加空值(它不是空引用)-但它没有添加有用的值:


你希望它在什么方面有用?您不应该添加一个有用的字符串值而不是一个新的空字符串吗?

您只需要添加一个新的空字符串。将其切换到其他内容,例如:

periods.add(new String("hey there!"));

您只需添加一个新的空字符串。将其切换到其他内容,例如:

periods.add(new String("hey there!"));

将一些字符串传递给函数addList,否则它将继续向列表中添加空字符串。当您编写类似于、
periods.add(新字符串(“Kanika”))
的内容时,只要按add按钮,它就会被添加到列表中,这意味着您的函数工作正常。但是,除非您将某些内容传递给它,否则它将不会插入任何有意义的内容。

将一些字符串传递给函数addList,否则它将继续向列表中添加空字符串。当您编写类似于、
periods.add(新字符串(“Kanika”))
的内容时,只要按add按钮,它就会被添加到列表中,这意味着您的函数工作正常。但是,除非您将某个内容传递给它,否则它将不会插入任何有意义的内容。

我只是输入一个类似abc的字符串。还有一件事,每当我单击“添加”按钮时,以前添加的值将变为空,这意味着文本框将变为空。@kanika:但您并没有将该字符串添加到列表中-您只是添加了一个新的空字符串。你认为那会怎样?现在还不清楚您使用的是什么框架,或者您希望任何用户数据如何进入您的类。我怀疑这个问题对于您正在使用的UI框架来说确实非常具体,您应该阅读该框架的教程。由于您甚至还没有告诉我们它是什么框架,因此我们无法为您提供更多帮助。“addList()”正在为我向列表中添加字符串。我想要的是,当用户单击add按钮时,她/他可以为其分配一个值;public void add(){items.add(new Item());}public void submit(){System.out.println(“items:+items”);}@ElementCollection public List getItems(){return items;}public void setItems(List items){this.items=items;}而且workswell@kanika:您需要查看SpringWebFlow教程,基本上-我无法从您提供的代码中判断UI数据将进入代码的位置。从这个UIData中,它将存储到数据库中的列表中。我正在尝试对字符串类型对象执行相同的操作。我只是输入一个类似abc的字符串。每当我单击“添加”按钮时,还有一件事要做以前添加的值变为空,我的意思是文本框变为空。@kanika:但您并没有将该字符串添加到列表中,您只是添加了一个新的空字符串。你认为那会怎样?现在还不清楚您使用的是什么框架,或者您希望任何用户数据如何进入您的类。我怀疑这个问题对于您正在使用的UI框架来说确实非常具体,您应该阅读该框架的教程。由于您甚至还没有告诉我们它是什么框架,因此我们无法为您提供更多帮助。“addList()”正在为我向列表中添加字符串。我想要的是,当用户单击add按钮时,她/他可以为其分配一个值;public void add(){items.add(new Item());}public void submit(){System.out.println(“items:+items”);}@ElementCollection public List getItems(){return items;}public void setItems(List items){this.items=items;}而且workswell@kanika:您需要查看SpringWebFlow教程,基本上-我无法从您提供的代码中判断UI数据要进入代码的位置。从这个UIData中,它将存储到一个列表中,也存储在Db中。我正在尝试对字符串类型的对象执行相同的操作。我希望用户添加一个新字符串。这里是“hey there”将是预定义的。还有一件事,当我写入时,我的值存储在索引零处,控制台上的消息变成:句点……………:[//在textbox中输入的值,]在这种情况下,为什么要使用文本调用字符串构造函数?;)我尝试了您的代码,但我希望该值由用户定义。它不接受我的更改。请在我按“添加”按钮“添加列表()时阐明我的观点。”调用get,返回一个字符串类型的对象。现在我想要的是,用户可以给它赋值。然后它将被存储到一个列表中。为什么在这种情况下我不能重新