Struts框架SaveNewOrder Action
创始人
2024-06-08 08:31:40
0

学习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分页

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...