⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appactionlistener.java

📁 JSF+Hibernate+Spring三层架构的一个例子
💻 JAVA
字号:
package pizzaria;

import java.util.Map;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.faces.component.UICommand;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import javax.servlet.ServletContext;


public class AppActionListener implements ActionListener {

  public void processAction(ActionEvent event) {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String localValue = (String) ((UICommand) event.getComponent()).getValue();

    if ("Buy".equals(localValue)) {
      String productId = (String)
        facesContext.getExternalContext().getRequestParameterMap().get("myForm:productId");
      Map sessionMap = facesContext.getExternalContext().getSessionMap();
      ShoppingCartBean cart = (ShoppingCartBean) sessionMap.get("shoppingCartBean");
      if (cart==null) {
        cart = new ShoppingCartBean();
        sessionMap.put("shoppingCartBean", cart);
      }
      
      ProductBean product = getDatabaseUtil().getProductDetails(productId);
      ShoppingItemBean shoppingItem = new
        ShoppingItemBean(product.getId(), product.getName(), product.getPrice(), 1);
      cart.addShoppingItem(shoppingItem);
    }
    else if ("Pay".equals(localValue)) {
      // insert a record into the database

      OrderBean order = (OrderBean) getValueBinding("#{orderBean}").getValue(facesContext);
      ShoppingCartBean cart = (ShoppingCartBean) 
        getValueBinding("#{shoppingCartBean}").getValue(facesContext);
      if (cart!=null && order!=null) {
        getDatabaseUtil().insertOrder(order, cart);
        // empty shopping cart
        cart.removeShoppingItems();
      }

    }

  }

  private ValueBinding getValueBinding(String valueRef) {
    ApplicationFactory factory =
(ApplicationFactory)FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
    Application application = factory.getApplication();
    return application.createValueBinding(valueRef);
  }

  private DatabaseUtil getDatabaseUtil() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ServletContext servletContext = (ServletContext)
facesContext.getExternalContext().getContext();
    return (DatabaseUtil) servletContext.getAttribute("DATABASE_UTIL");
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -