用JavaBean数据组件集成JSF应用程序与EJB(4)
2008-01-05 10:29:41 来源:WEB开发网核心提示:选中 symbol 字段标题,将首字母改为大写,用JavaBean数据组件集成JSF应用程序与EJB(4),图 31. 选择字段标题此外,在 Attribute 项中,如图 38 所示, 图 38. 包含代码的 Quick Edit 对话框Java 代码会自动添加,对于每个字段名称 Cell 均选择 Header,图
选中 symbol 字段标题,将首字母改为大写。
此外,在 Attribute 项中,对于每个字段名称 Cell 均选择 Header。
Header 必须为粗体。
修改所有其他的标题元素,如图 34 所示。
操作处理和导航
结果页面创建之后,我们需要为提交页面创建 Action Handler,以便与 EJB 相交互。这些完成之后,我们需要收集结果以便配置恰当的导航规则。我们可以使用控制的 Quick Edit 项来将 Server Side Actions 添加到应用程序中。
添加一个操作到 accessStock.jsp 页面中。
打开 accessStock.jsp 页面。
选择 Submit Stock Request 按钮。
在 Quick Edit 按钮菜单中选择 Command。
代码提供在下载文件中。将 C:\JSFArticleSeries\Part4\CodeSnippet1.txt 中的代码复制到 Quick Edit 窗口的编辑区中。主要的代码段是在 try 块中,但也包含了一些异常捕捉和错误处理的代码:
try 块得到 Delegate 的一个实例,并调用 business 方法(该方法也依次调用 StockFacadeEJB)。结果返回 AccessStockQuoteVO。我们将返回结果存储在 stockData 名称下的请求作用域中。viewStockData.jsp 就是通过该名称期待获得这一结果的。(符号输入是从请示作用域中获得的。)
try
{
com.deploybook.stock.delegate.AccessQuoteDelegate
accessQuote = com.deploybook.stock.delegate.AccessQuoteDelegate.getAccessQuoteDelegate();
com.deploybook.stock.vo.AccessStockQuoteVO
accessQuoteForm = accessQuote.getCurrentStockData((String)requestScope.get("symbol"));
requestScope.put("stockData",accessQuoteForm);
}
假如我们捕捉到一个异常,我们就在按钮组件中添加一个错误方法。codebehind 对象根据属性中配置的名称实例化页面中的每个组件。然后返回 failure。假如没有对失败返回值配置导航的话,它就会返回到同一个页面。我们可以添加一个链接到按钮控制的错误组件。
catch (com.deploybook.stock.exceptions.StockException e)
{
e.PRintStackTrace(System.err);
context.addMessage(buttonEx1,
new javax.faces.application.MessageImpl(
javax.faces.application.Message.SEVERITY_ERROR,
"Stock Not found",
"Symbol Not Found or invalid"
));
return "failure";
} catch (com.deploybook.stock.exceptions.SymbolNotFoundException e) {
e.printStackTrace(System.err);
context.addMessage(buttonEx1,
new javax.faces.application.MessageImpl(
javax.faces.application.Message.SEVERITY_ERROR,
"Stock Not found",
"Symbol Not Found or invalid"
));
return "failure";
} catch (com.deploybook.trade.exception.InvalidSymbolException e) {
e.printStackTrace(System.err);
context.addMessage(buttonEx1,
new javax.faces.application.MessageImpl(
javax.faces.application.Message.SEVERITY_ERROR,
"Stock Not found",
"Symbol Not Found or invalid"
));
return "failure";
}
假如所有的执行都成功完成,那么我们返回 sUCcess。然后再来配置导航。
return "success";
Quick Edit 应该包含这些代码,如图 38 所示。
Java 代码会自动添加,打开 accessStock.java 即可确认是否自动添加代码。
更多精彩
赞助商链接