每次生成一个新的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..................................: [, ]
答案 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中,这意味着您的功能正常工作。但除非并且直到你将某些东西传递给它,否则它不会插入任何有意义的东西。