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

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

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

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

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 页面

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

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

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

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

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