Struts框架SaveNewOrder Action

开发 后端
这里介绍Struts框架SaveNewOrder Action,这是一个典型的Struts Action;然而,注意这个action的异常配置。

学习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. }  

【编辑推荐】

  1. 详细概述Hibernate Struts区别
  2. Struts 2:一流的AJAX支持
  3. 学习比较Struts2和Struts1:Struts2完胜
  4. 如何解决Struts Hibernate的整合问题
  5. 浅析Hibernate Struts分页
责任编辑:佚名 来源: IT168
相关推荐

2009-09-29 11:09:57

服务定位器Struts Acti

2011-08-11 13:02:43

Struts2Junit

2009-06-25 15:46:19

HttpServletStruts2教程Action类

2009-02-01 10:05:00

2009-06-04 10:33:10

struts vali框架

2009-06-08 16:45:00

精通StrutsTiles

2009-06-23 14:01:27

StrutsTapestryJSF

2009-06-04 07:55:08

Struts框架简介Struts

2015-05-05 11:06:02

JavaJava框架Struts+Hibe

2009-06-04 11:08:32

struts2 val框架

2009-06-04 09:11:34

学习strutsstruts框架

2009-06-18 11:37:24

Struts2中ForJavaScript

2009-06-25 15:37:12

Struts2教程Validation框

2011-03-30 09:03:57

struts2

2010-01-08 12:03:42

ibmdwREST

2009-06-19 16:05:39

时间类型Struts

2009-06-03 15:38:37

Struts框架RBAC

2009-06-05 09:58:20

struts2验证用户注册

2010-04-20 09:14:33

Struts

2009-02-04 13:13:03

点赞
收藏

51CTO技术栈公众号