使用Spring 的 ActionSupport
使用Spring 的 DelegatingRequestProcessor 類
全權委托
無論用那種方法來整合第一步就是要為struts來裝載spring的應用環境 就是在 struts 中加入一個插件
strutsconfigxml中
<plug
in className=
org
springframework
web
struts
ContextLoaderPlugIn
>
<set
property property=
contextConfigLocation
value=
/WEB
INF/applicationContext
xml
/>
</plug
in>
spring 的配置文件被作為參數配置進來這樣可以省略對webxml 文件中的配置確保你的applicationContextxml 在WEBINF目錄下面
使用Spring的ActionSupport
Spring 的ActionSupport 繼承至 orgapachestrutsactionAction ActionSupport的子類可以或得 WebApplicationContext類型的全局變量通過getWebApplicationContext()可以獲得這個變量
這是一個 servlet 的代碼
public class LoginAction extends org
springframework
web
struts
ActionSupport {
public ActionForward execute(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto
generated method stub
//獲得 WebApplicationContext 對象
WebApplicationContext ctx = this
getWebApplicationContext();
LoginDao dao = (LoginDao) ctx
getBean(
loginDao
);
User u = new User();
u
setName(loginForm
getName());
u
setPwd(loginForm
getPwd());
if(dao
checkLogin(u)){
return mapping
findForward(
success
);
}else{
return mapping
findForward(
error
);
}
}
}
applicationContextxml 中的配置
<beans>
<bean id=
loginDao
class=
com
cao
dao
LoginDao
/>
</beans>
這中配置方式同直接在webxml文件配置差別不大注意Action繼承自 orgspringframeworkwebstrutsActionSupport 使得struts和spring耦合在一起
但實現了表示層和業務邏輯層的解耦(LoginDao dao = (LoginDao) ctxgetBean(loginDao))
使用Spring 的 DelegatingRequestProcessor 類
DelegatingRequestProcessor 繼承自 orgapachestrutsactionRequestProcessor 並覆蓋了裡面的方法
[] [] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29074.html