2013-02-05 53 views
0

我有和輸入類型,它的值在flowScope中設置。無法在流量計中創建輸入集的多個實例

<input name="myItem" required="false" value="flowScope.myItem"/> 

我創建MyOtherItem的列表,並將其發送到控制器的方法是這樣的:

<evaluate expression="myController.save(myOtherItemDataModel.selectedRows,myItem)" result="flowScope.myItem"/> 

裏面myController的我有方法保存在我想救myItem的多個實例從myOtherItemList獲取數據。

public MyItem save(MyOtherItem[] myOtherItem,MyItem myItem){ 
    for(int i=0; i<myOtherItem.length; i++){ 
     myItem.setData(myOtherItem[i].getData()); 
     saveMyItem(myItem); 
    } 
    return myItem; 
} 

裏面saveMyItem方法,我堅持MyItem對象

public void saveMyItem(MyItem myItem) { 
    entityManager.persist(myItem); 
} 

這裏的EntityManager是javax.persistence.EntityManager類的一個實例。

我的問題是我只有一個條目保存在數據庫中,而save方法中的循環運行多次。原因是它沒有創建MyItem的新實例,只是覆蓋舊實例的數據。有誰知道我該如何解決這個問題?

回答

0

我不明白爲什麼你需要你MyItem傳遞給控制器​​的方法 我不明白這myItem你試圖返回,因爲你似乎想保存一羣人...

也許你應該使用類似的東西來代替:

public List<MyItem> save(MyOtherItem[] myOtherItem){ 
    List<MyItem> result = new ArrayList<MyItem>(); 
    for(int i=0; i<myOtherItem.length; i++){ 
     MyItem myItem = new MyItem(); 
     myItem.setData(myOtherItem[i].getData()); 
     saveMyItem(myItem); 
     result.add(myItem); 
    } 
    return myItem; 
}