hi all, i have written a small Seam application that resembles a shopping cart. I have a EcontrolSession bean, and two entity beans, Expense and Items. I am adding items to the expense bean and then i plan to persist the expense via the SessionBean
My question is: - my Session bean is stateful and has a session scope - my Expense entity will be a global variable in the EControlSession bean, because it lasts for the lifespan of user session - My Item will have a request scope because user enters items at every request. My thought was that . this would have worked | @Stateful | @Local ( {EControlSession.class}) | @Name("econtrol") | | | @Scope(SESSION) | | | | public class EControlSessionBean | implements EControlSession, java.io.Serializable | { | | | private Expense expense = new Expense(); | | @In(create=true) | private Item item = new Item(); | | @PersistenceContext | EntityManager em; | | | | int counter = 0; | | | | /** | * Add an user (Admin only should access this) | */ | public void addExpense (Expense expense) { | System.err.println("Persisting expense"); | em.persist(expense); | System.err.println("Expense persisted.."); | } | | public Expense getExpense() { | return expense; | } | | | public Item getItem() { | return item; | } | | public String add() { | | item.setName("test" + 1); | item.setPrice(1); | | | expense.addItem(item); | | return "success"; | } | ... | and here's my page | <ui:composition xmlns="http://www.w3.org/1999/xhtml" | xmlns:ui="http://java.sun.com/jsf/facelets" | xmlns:h="http://java.sun.com/jsf/html" | xmlns:f="http://java.sun.com/jsf/core" | xmlns:s="http://jboss.com/products/seam/taglib" | template="template.xhtml"> | <ui:define name="body"> | | <h2> Adding Product</h2> | <h:messages/> | | <f:view> | <h:form id="foobrrewwe"> | <table> | <tr> | <td>Site:<h:outputText value="#{econtrol.expense.site}"/></td> | <td>Date:<h:outputText value="#{econtrol.expense.date}"/></td> | </tr> | </table> | <table> | <tr> | <td>Product Name</td> | <td><h:inputText value="#{econtrol.item.name}"/></td> | | </tr> | | <tr> | <td>Price</td> | <td><h:inputText value="#{econtrol.item.price}"> | <f:converter converterId="javax.faces.Double"/> | </h:inputText> | </td> | </tr> | | </table> | | <h:commandButton action="#{econtrol.add}" value="Add Item" | class="formButton" style="width: 166px;" /> | <h:commandButton action="#{econtrol.stop}" value="Finish" | class="formButton" style="width: 166px;" /> | | </h:form> | </f:view> | | <h4><a href="register.seam">Back To Index</a></h4> | </ui:define> | | </ui:composition> | my assumption was because i thought that @In somehow resolved to a getter and setters, so that the Item object can be populated using <h:inputText value="#{econtrol.item.price}/> as i have found out, it does not work that way... is the only way out for me to declare two @request variable and populate each item with those requet variables? thanks and regards marco View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3949596#3949596 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3949596 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user