在ViewScope中未正确添加数据表值

时间:2012-10-29 14:35:15

标签: jsf-2 datatable

表格和表格在同一页面上。当用户添加表单详细信息并单击添加时,应将数据复制到表中。

当用户输入详细信息并第二次单击添加时(表中已存在的数据),第一个值将被新值覆盖,列表中的下一个值为空。

我们如何在桌面上显示这两个值。

Name.xhtml

<h:form>
  <h:inputText value="#{bean.fName}"/>
  <h:inputText value="#{bean.lName}"/>

   <h:dataTable value="#{bean.list}" var="name">
     <h:column>
       <h:outputText value="#{name.fName}">
     </h:column> 
   </h:dataTable>
   <h:commandLink action="#{bean.add}"/>
 </h:form>

Bean.java // Bean类是ViewScoped

@ManagedProperty(值= “#{buyerTO}”) protected BuyerTo buyerTO;

列出buyerTOList = new ArrayList(); // BuyerTO在ViewScope中

public String addBuyer(){
 buyerTOList.add(buyerTO);
 buyerTO = new BuyerTO();
 return "";

}

1 个答案:

答案 0 :(得分:2)

您将通过返回非null / void来结束视图范围。您需要返回nullvoid才能保留后续请求的查看范围。

替换

return "";

通过

return null;

public void addBuyer() {
    // ...
    // No return statement.
}