Struts

ActionSupport 类

正如前面提到的,你可以使用 WebApplicationContextUtils 类从 ServletContext 中获得 WebApplicationContext 。 另一个简单的办法是继承 Spring 的 Action 类。举个例子,除了继承 Struts 的 Action 之外,你也可以继承 Spring 的 ActionSupport 类。

ActionSupport 类提供了一些便利的方法,例如 getWebApplicationContext()。 下面的例子展示了如何在 Action 中使用它:

Java代码  复制代码
public class UserAction extends DispatchActionSupport {     
    
    public ActionForward execute(ActionMapping mapping,     
                                 ActionForm form,     
                                 HttpServletRequest request,     
                                 HttpServletResponse response) throws Exception {     
        if (log.isDebugEnabled()) {     
            log.debug("entering 'delete' method...");     
        }     
        WebApplicationContext ctx = getWebApplicationContext();     
        UserManager mgr = (UserManager) ctx.getBean("userManager");     
        // talk to manager for business logic     
        return mapping.findForward("success");     
    }     
}   

Spring 包含了所有标准 Struts Action 的子类 - Spring 版本在类名末尾附加了 Support:

ActionSupport,

DispatchActionSupport ,

LookupDispatchActionSupport

MappingDispatchActionSupport


你应该选择最适合你项目的集成方式。继承使得你的代码更可靠,并且你确切地知道依赖关系是如何被解析的。 另一方面,使用 ContextLoaderPlugin 允许你方便地在context XML 文件里面增加新的 依赖关系。这两种集成方法,不管哪一种 Spring 都提供了相当好用的选项。

你可能感兴趣的:(spring,struts)