採用DelegatingRequestProcessor將處理轉發給Spring容器中的bean
DelegatingRequestProcessor繼承自RequestProcessor。爲了讓Struts使用DelegatingRequestProcessor,還需要在struts-config.xml文件中增加如下代碼:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
這一行代碼是告訴Struts用DelegatingRequestProcessor來代替原來的RequestProcessor。完成設置這個設置
後,Struts會將攔截到的用戶請求轉發到Spring
context下的bean,根據bean的name屬性來匹配。而Struts中的action配置則無需配置type屬性(即使配置了type屬性也
不起任何作用,除非在spring的配置文件裏找不到對應的name屬性值
。
配置了上面的一行代碼後,就可以在Spring的配置文件(可以不是applicationContext.xml,比如假設這裏是action-
servlet.xml)中配置用來處理請求的Action bean了。配置的時候需要注意的是Action
bean不再需要id屬性,而要用name替代id屬性,這時name屬性的值應與struts-config.xml中配置的Action的path屬
性的值相同。
這樣,處理請求的Action就能處於Spring的管理之下了。