用JavaBean数据组件集成JSF应用程序与EJB(2)

1/5/2008来源:Java教程人气:5994


  添加名为 ejb/StockFacade 的引用。
  
图 11. 添加 ejb/StockFacade

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图一)

  在 Details 部分单击 Browse 按钮。
  
图 12. Details 和 WebSphere Bindings

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图二)


  选择 StockFacade EJB 并单击 OK。
  
图 13. 选择 StockFacade EJB

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图三)

  会话 bean 和绑定信息都必须填写完整。
  
图 14. Details 和 WebSphere Bindings

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图四)

  Web 应用程序会使用 EJB 本地接口来访问数据。EJB 本地接口将符号作为输入并返回一个 accessStockQuoteVO。这是一个带有 getters 和 setters 的简单 javaBean。
  public interface StockFacadeLocal extends javax.ejb.EJBLocalObject {
  public AccessStockQuoteVO getCurrentStockData(String symbol)
   throws SymbolNotFoundException,
       StockException,
       InvalidSymbolException;
  ...
  }
  
  EJB JAR 提供了一个简单的 Delegate 对象,它隐藏了对象的复杂性。该委托是一个单独的 Java 对象,它提供了一个类似的接口。
  public class AccessQuoteDelegate
  {
  PRivate StockFacadeLocal stockFacade;
  public static AccessQuoteDelegate accessQuoteDelegate = null;
  public static AccessQuoteDelegate getAccessQuoteDelegate() throws StockException
  {
   if(accessQuoteDelegate == null)
   {
     accessQuoteDelegate = new AccessQuoteDelegate();
   }
   return accessQuoteDelegate;
  }
  private AccessQuoteDelegate() throws StockException
  {
   InitialContext context;
   try
   {
     context = new InitialContext();
     StockFacadeLocalHome home = (StockFacadeLocalHome)context.lookup("java:comp/env/ejb/StockFacade");
     stockFacade = home.create();
   }
   catch (NamingException e)
   {
     throw new StockException(e.getLocalizedMessage());
   }
   catch (CreateException e)
   {
     throw new StockException(e.getLocalizedMessage());
   }
  }
  public AccessStockQuoteVO getCurrentStockData(String symbol)
   throws SymbolNotFoundException, StockException, InvalidSymbolException
  {
   return stockFacade.getCurrentStockData(symbol);
  }
  }
  创建 viewStockData.jsp
  设置好 EJB 对象之后,我们就可以创建 Stock Data 页面,用它来显示调用 StockFacade stockData 方法的结果。
  
  首先,我们创建一个新的 JSF 页面来显示提交 Stock Data Request 的结果。
  在 Application Developer 中,右键单击 PersonalTradeJSF 页面中的 WebContent 文件夹,选择 New => Faces JSP File。
  
图 15. 创建新的 JSF 页面

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图五)

  在 File Name 字段中键入 viewStockData.jsp,然后选择 Create from page template。
  
图 16. New Faces JSP File

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图六)

  确保选中 StockPageTemplate.jtpl。单击 Finish。
  
图 17. Page Template File Selection

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图七)

  现在我们使用 Visual Palette 来添加标签。
  在 Faces Visual Palette 中选择 Output 组件
  
图 18. Visual Palette

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图八)

  将 Output 组件添加到页面中。将文本大小设为 18,文本值设为:View Stock Data。
  
图 19. 将 Output 添加到 JSP 中

  
 用JavaBean数据组件集成JSF应用程序与EJB(2)(图九)

  EJB 返回一个正规的 Java Bean。我们将作为页面数据添加该 Java Bean。
  转到 Page Data 视图。右键单击 JSP Scripting 并选择 New => JavaBean。
  
图 20. 创建新的 JavaBean

  
用JavaBean数据组件集成JSF应用程序与EJB(2)(图十)