2010-11-03 4 views
0

я один метод следовал:геттер/сеттер для списка

public List<Car> getCart(){ 
//do something 
} 

и в JSF-странице я пользователь этот метод для отображения данных в час: Datatable

и с учетом (страницы JSF) у меня есть один inputText в h: dataTable, пример в h: dataTable У меня есть 2 столбца: Имя и количество корзины, а в столбце Количество inputText для редактирования пользователем Количество элементов. Моя проблема в том, как я могу установить значение для ListTypeType? потому что я формульный для обновления корзины следующего:

Quantity of Cart Update = (Item In stock + old Quantity of each item) - new Quantity of each item 

в по формуле я могу получить пункт Instock, но я задаюсь между старым Количеством каждого товара и новым Количеством каждого товара, потому что, если я получаю количество каждого это будет новое значение. Но теперь я только получаю значение старого количества каждого элемента, потому что я не знаю, как может настроить для списка

У всех могут быть идеи по этой проблеме и моей формуле?

Спасибо

======================================== =======

Редактировать

мой Список метод Корзина в backin боба

public List<Cart> getUserCart(){ 
     int userid = getMemberLoginController().getUser().getUserid().intValue(); 
     return cartDAO.getUSerCart(userid); 
    } 

cartDAO является Session Bean Stateless это сделать getResultList где Идентификатор_пользователя =: идентификатор пользователя.

и обновление метод

public void updateCart(){ 
     List<Cart> cartQuantity = getUserCart(); 
     int i = 0 ; 
     for(Cart cartQuantityOnHand : cartQuantity){ 
      i = cartQuantityOnHand.getCartQuantity(); 
      int a = i + cartQuantityOnHand.getItem().getInstock(); 
      System.out.println(i); 
     } 
    } 

как я могу получить старый Количество на руке Список и новое количество на руки список?

ответ

1

В списке не нужен сеттер. JSF будет вызывать только его получатель, а затем вызывать сеттер для каждого из элементов списка.

Ваша проблема звучит так, как будто вы каждый раз загружаете список внутри получателя, а не в конструкторе bean или postconstruct. Если вы получаете список своим получателем в методе действия bean-компонента, тогда исходный список со всеми представленными значениями будет переопределен новым из базы данных.

Таким образом, вы не должны проектировать как:

public List<Item> getItems() { 
    return em.createNamedQuery("Item.list", Item.class).getResultList(); 
} 

public String submit() { 
    for (Item item : getItems()) { 
     em.persist(item); 
    } 
    return "outcome"; 
} 

Но вы скорее должны разработать его как:

private List<Item> items; 

@PostConstruct 
public void init() { 
    items = em.createNamedQuery("Item.list", Item.class).getResultList(); 
} 

public List<Item> getItems() { 
    return items; 
} 

public String submit() { 
    for (Item item : items) { 
     em.persist(item); 
    } 
    return "outcome"; 
} 
+0

Привет BalusC, я не поставил getResultList в postconstruct или конструктор, у меня есть отредактировал мой вопрос, вы можете проверить его. Спасибо – MYE

+0

Затем исправьте код соответственно на основе моего ответа :) – BalusC

+0

Спасибо BalusC! но как я могу еще старое количество в другом списке? мне нужно задать новый вопрос по этой проблеме? потому что Количество в наличии равный ток в запасе + старое количество - новое количество – MYE

Смежные вопросы