我有一个支持 bean,它有一个名为 List cites 的属性,其中 Cite 有一个名为 "value" 的字符串属性。在 init 方法中,我获取存储为逗号分隔字符串的值,将它们拆分为单个字符串,构建一个列表并显示引用列表。但我也想让用户能够在现有引用的基础上添加更多引用/编辑现有引用内容。我怎样才能做到这一点 ?下面的代码是xhtml中的jsf,但它对我不起作用..
<div style="margin-top: 10px; padding: 3px 3px;">
<fieldset>
<legend>Cites Affected</legend>
<h:dataTable value="#{dataEntry.cites}" var="citeAffected">
<h:column>
<f:facet name="header" >
<h:outputText value="Cite"/>
</f:facet>
<h:inputText value="#{citeAffected.value}"/>
</h:column>
</h:dataTable>
<h:commandButton value="Add cite" process="@this" action="#{dataEntry.addCite}"/>
</fieldset>
</div>
在支持豆中..这就是我所拥有的
DataEntry
{
private List<CiteAffected> cites = new ArrayList<CiteAffected>();
public void addCite()
{
cites.add(new CiteAffected());
}
public void editMetadata()
{
//update the db object
}
private void init()
{
// get the value from database as a comma separated string
for(String citeAffected : Arrays.asList(sourceManualLoadProperties.getCitesAffected().split(",")))
{
CiteAffected cite = new CiteAffected();
cite.setValue(citeAffected);
this.cites.add(cite);
} }
}
我得到的错误是..只要我点击命令按钮“添加引用”,当我希望它简单地添加另一个文本框但也显示现有值时,所有现有值都会消失..
public class CiteAffected
{
private String value;
/**
*
* @return the cite affected
*/
public String getValue()
{
return value;
}
/**
*
* @param value the cite affected
*/
public void setValue(final String value)
{
this.value = value;
}
}