Getting inputText value
jmacneedshelp Aug 7, 2009 8:32 AMSo, I think I have a simple question but I cannot seem to figure out the answer. I have a component DropShipOrders into which I want to inject an inputText value. I have tried EVERYTHING including create a @Transient field in Orderitem to bind the inputText field to. The field is set from the value but it will not reset based on a new value I enter into the box. What am I doing wrong?
DropShipOrdersAction component
@Stateful @Name("DropShipOrders") public class DropShipOrdersAction implements DropShipOrders { @Logger private Log log; @In FacesMessages facesMessages; @In private EntityManager entityManager; @In(create=true) private Renderer renderer; //@In(required=false) private Orders searchOrder = new Orders(); private String splitQuantity = new String("15"); public void setSplitQuantity(String splitQuantity){ this.splitQuantity = splitQuantity; } public String getSplitQuantity() { return splitQuantity; } //@Factory(scope=ScopeType.CONVERSATION) public List<Orders> getDropShipOrdersList() { log.info("DropShipOrders.getDropShipOrders "); if( searchOrder != null ) { log.info("OrderID: "+searchOrder.getOrderNumber()); } if( searchOrder != null && searchOrder.getOrderNumber() != null ) { return entityManager.createQuery("select o from Orders o where o.orderNumber='"+searchOrder.getOrderNumber()+"'").getResultList(); } else { return entityManager.createQuery("select o from Orders o where o.status In('Whs')").getResultList(); } } public Orders getSearchOrder() { return searchOrder; } public void setSearchOrder(Orders searchOrder) { log.info("Setting searchOrder"); this.searchOrder = searchOrder; } public void findOrder() { log.info("DropShipOrders.findOrder Called."); if( searchOrder != null ) log.info("OrderID: "+searchOrder.getOrderNumber()); //return entityManager.createQuery("select o from Orders o where o.orderId In("++)").getResultList(); } public void splitLineItem(Orderitem oi) { log.info("DropShipOrders.splitLineItem Called"); log.info("SplitQuantity: "+splitQuantity); try { int qty = oi.getQuantity(); log.info("DropShipOrders.splitLineItem to QTY:"+qty); oi.setSplitQuantity(0); Orders o = oi.getOrders(); List items = o.getOrderitems(); Orderitem newSplitItem = (Orderitem)BeanUtils.cloneBean(oi); newSplitItem.setOrderItemId(null); newSplitItem.setQuantity(qty); newSplitItem.setOrderitemattributes(null); oi.setQuantity((oi.getQuantity()-qty)); items.add(newSplitItem); entityManager.persist(newSplitItem); } catch(Exception ex) { facesMessages.add("Unable to copy line item. Error was: "+ex.getMessage()); } } public void transmitOrder(Orders order){ log.info("DropShipOrders.transmitOrder Called"); if( order != null) { log.info("DropShipOrders.transmitOrder Order "+order.getOrderId()+" IS NOT Null"); order.setStatus("Processing"); entityManager.persist(order); } try { renderer.render("/simple.xhtml"); facesMessages.add("Email sent successfully"); } catch (Exception e) { facesMessages.add("Email sending failed: " + e.getMessage()); } facesMessages.add("Order "+order.getOrderNumber()+" transmitted to vendor"); } public void transmitLineItem(Orders o, Orderitem oi){ log.info("DropShipOrders.transmitOrderItem Called"); } @Destroy @Remove public void destroy() {} }
form from xhtml page
<h:form> <h:inputText size="3" var="splitQuantity" value="#{DropShipOrders.splitQuantity}" /> <h:commandButton id="split" value="Split" action="#{DropShipOrders.splitLineItem(_orderitem)}" /> </h:form>