java – Spring注入Struts RequestProcessor

我为我的应用程序编写了一个自定义Struts RequsetProcessor,它手动从Spring获取一些引用.它工作得很好,但我想做“正确”的事情,并在施工时注入我需要的一切.

有没有办法定义一个自定义Struts RequestProcessor,我可以在Struts实例化这个RequestProcessor时将Spring对象注入其中?

解决方法:

最简洁的答案是不”.长的答案是“有点”:

假设Struts通过ContextLoaderPlugin在您的应用程序中与Spring集成,您可以执行以下两项操作之一:

A)创建一个你将在Spring上下文中定义的“ProcessorContext”bean(或任何你想要调用的bean),并通过从Spring的上下文中获取它来从自定义请求处理器访问它(可以通过WebApplicationContextUtils.getWebApplicationContext获取它(getServletContext( ))).

B)如果您的自定义处理器扩展了Spring的DelegatingRequestProcessor或DelegatingTilesRequestProcessor,您可以编写一个新的请求处理器,它可以按功能执行您想要的操作,将所有依赖项绑定到Spring上下文,然后扩展DelegatingRequestProcessor或DelegatingTilesRequestProcessor以从上下文中获取它(通过类型或id)并委托给它.这实际上是(A)的扩展,但它将所有Spring的管道委托给Spring的请求处理器扩展,使您的自定义处理器与Spring无关.

Spring / Struts集成在07​​001中有详细描述.

上一篇:java – Struts 2是否可用作OSGi包?


下一篇:java – Struts逻辑:迭代输入字段