Struts框架SaveNewOrderAction

学习Struts框架时,经常会遇到SaveNewOrder Action问题,这里将介绍SaveNewOrder Action问题的解决方法。

SaveNewOrder Action

示例应用的用户接口层使用Struts框架。这儿我们将讨论当为一个应用分层时和Struts相关的部分。让我们从在struts-config.xml文件里检查一个Action配置开始。

 
 
 
  1. type="com.meagle.action.SaveOrderAction"   
  2. name="OrderForm"   
  3. scope="request"   
  4. validate="true"   
  5. input="/NewOrder.jsp">   
  6. Save New Order   
  7.  
  8. path="/NewOrder.jsp"   
  9. scope="request"   
  10. type="com.meagle.exception.OrderException"/>   
  11.  
  12. path="/NewOrder.jsp"   
  13. scope="request"   
  14. type="com.   
  15. meagle.   
  16. exception.   
  17. OrderMinimumAmountException"/>  

SaveNewOrder Action被用来持久化一个用户从用户接口层提交的订单。这是一个典型的Struts Action;然而,注意这个action的异常配置。这些Exceptions为我们的业务服务对象也在Spring 配置文件(applicationContext-hibernate.xml)中配置了(在transactionAttributes属性里)。当这些异常被从业务层掷出我们能在我们的用户接口里恰当的处理它们。第一个异常,OrderException,当在持久层里保存订单对象失败时将被这个action使用。这将引起事务回滚和通过业务对象传递把异常传回给Struts层。OrderMinimumAmountException,在业务对象逻辑里的一个事务因为提交的订单达不到最小订单数量而失败也将被处理。然后,事务将回滚和这个异常能被用户接口层恰当的处理。

最后一个连接步骤是使我们的表现层和我们的业务层交互。这已经通过使用前面讨论的服务定位器来完成了。服务层充当一个到我们的业务逻辑和持久层的接口。这儿是Struts框架中的SaveNewOrder Action可能怎样使用一个服务定位器调用一个业务方法:

 
 
 
  1. public ActionForward execute( ActionMapping mapping, ActionForm form, 
    javax.servlet.http.HttpServletRequest request,
    javax.servlet.http.HttpServletResponse response)   
  2. throws java.lang.Exception {   
  3.  
  4. OrderForm oForm = (OrderForm) form;   
  5.  
  6. // Use the form to build an Order object that   
  7. // can be saved in the persistence layer.   
  8. // See the full source code in the sample app.   
  9.  
  10. // Obtain the wired business service object   
  11. // from the service locator configuration   
  12. // in BaseAction.   
  13. // Delegate the save to the service layer and   
  14. // further upstream to save the Order object.   
  15. getOrderService().saveNewOrder(order);   
  16.  
  17. oForm.setOrder(order);   
  18.  
  19. ActionMessages messages = new ActionMessages();   
  20. messages.add(ActionMessages.GLOBAL_MESSAGE, 
    new ActionMessage("message.order.saved.successfully"));   
  21.  
  22. saveMessages(request, messages);   
  23.  
  24. return mapping.findForward("success");   
  25. }  

文章标题:Struts框架SaveNewOrderAction
分享地址:http://www.shufengxianlan.com/qtweb/news16/374366.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联