在List <string>中动态添加值</string>

时间:2011-08-12 08:21:38

标签: java

每次生成一个新的String,但List的值为空值。

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

实体AddPeriods:对象添加

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);
           }

控制台上的消息:添加2次后

    periods..................................: [, ]

3 个答案:

答案 0 :(得分:3)

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

periods.add(new String());

您期望以何种方式发挥作用?你不应该添加一个有用的字符串值而不仅仅是一个新的空字符串吗?

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

将一些String传递给函数addList,否则它将继续将空字符串添加到列表中。当您按下添加按钮时,写下periods.add(new String("Kanika"))之类的内容,并将其添加到List中,这意味着您的功能正常工作。但除非并且直到你将某些东西传递给它,否则它不会插入任何有意义的东西。