快速业务通道

使用Spring更好地处理Struts动作 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
和 Spring 的理解。在处理各种不同情况的时候,这将给您提供一个广阔的选择范围。方法如下:

使用 Spring 的 ActionSupport 类整合 Structs 使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor 将 Struts Action 管理委托给 Spring 框架   装载应用程序环境

无论您使用哪种技术,都需要使用 Spring 的 ContextLoaderPlugin 为 Struts 的 ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的 struts-config.xml 文件添加该插件,如下所示:

<plug-in className=   "org.springframework.web.struts.ContextLoaderPlugIn">    <set-property property=     "contextConfigLocation" value="/WEB-INF/beans.xml"/> </plug-in>

每个例子都为一个书籍搜索应用程序提供一种不同的 Struts 和 Spring 的整合方法。您可以在这里看到例子的要点,但是您也可以下载应用程序以查看所有的细节。

使用Spring更好地处理Struts动作(2)

时间:2011-01-03 IBM George Franciscus

窍门 1. 使用 Spring 的 ActionSupport

手动创建一个 Spring 环境是一种整合 Struts 和 Spring 的最直观的方式。为了使它变得更简单,Spring 提供了一些帮助。为了方便地获得 Spring 环境,org.springframework.web.struts.ActionSupport 类提供了一个 getWebApplicationContext() 方法。您所做的只是从 Spring 的 ActionSupport 而不是 Struts Action 类扩展您的动作,如清单 1 所示:

清单 1. 使用 ActionSupport 整合 Struts

package ca.nexcel.books.actions; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import org.springframework.context.ApplicationContext; import org.springframework.web.struts.ActionSupport; import ca.nexcel.books.beans.Book; import ca.nexcel.books.business.BookService; public class SearchSubmit extends ActionSupport {  |(1)   public ActionForward execute(    ActionMapping mapping,    ActionForm form,    HttpServletRequest request,    HttpServletResponse response)    throws IOException, ServletException {    DynaActionForm searchForm = (DynaActionForm) form;    String isbn = (String) searchForm.get("isbn");      //the old fashion way    //BookService bookService = new BookServiceImpl();      ApplicationContext ctx =      getWebApplicationContext();  |(2)    BookService bookService =      (BookService) ctx.getBean("bookService");  |(3)        Book book = bookService.read(isbn.trim());    if (null == book) {     ActionErrors errors = new ActionErrors();     errors.add(ActionErrors.GLOBAL_ERROR,new ActionError      ("message.notfound"));     saveErrors(request, errors);     return mapping.findForward("failure") ;   }    request.setAttribute("book", book);    r

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号