熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring 和struts 整合的三種方式[1]

2013-11-23 20:47:20  來源: Java開源技術 

  使用Spring 的 ActionSupport

  使用Spring 的 DelegatingRequestProcessor 類

  全權委托

  無論用那種方法來整合第一步就是要為struts來裝載spring的應用環境 就是在 struts 中加入一個插件

  strutsconfigxml中

 <plugin className=orgspringframeworkwebstrutsContextLoaderPlugIn>
  <setproperty property=contextConfigLocation value=/WEBINF/applicationContextxml/>
 </plugin>

  spring 的配置文件被作為參數配置進來這樣可以省略對webxml 文件中的配置確保你的applicationContextxml 在WEBINF目錄下面

  使用Spring的ActionSupport

  Spring 的ActionSupport 繼承至 orgapachestrutsactionAction ActionSupport的子類可以或得 WebApplicationContext類型的全局變量通過getWebApplicationContext()可以獲得這個變量

  這是一個 servlet 的代碼

public class LoginAction extends orgspringframeworkwebstrutsActionSupport {
 
 public ActionForward execute(ActionMapping mapping ActionForm form
   HttpServletRequest request HttpServletResponse response) {
  LoginForm loginForm = (LoginForm) form;// TODO Autogenerated method stub
                //獲得  WebApplicationContext  對象             
  WebApplicationContext ctx = thisgetWebApplicationContext();
 
  LoginDao dao = (LoginDao) ctxgetBean(loginDao);
  User u = new User();
 
  usetName(loginFormgetName());
  usetPwd(loginFormgetPwd());
 
 
  if(daocheckLogin(u)){
   return mappingfindForward(success);
  }else{
   return  mappingfindForward(error);
  }
 
 }
}

  applicationContextxml 中的配置

<beans>
 <bean id=loginDao class=comcaodaoLoginDao/>
</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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.