您现在的位置是:首页 >

spring与struts的区别 Spring 和struts 整合的三种方式[1]

火烧 2023-01-20 09:51:29 1061
S ri g 和 trut 整合的三种方式[1]    使用S ri g 的 Actio Su ort    使用S ri g 的 Delegati gReque tProce or 类    全权委

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

   使用Spring 的 ActionSupport

   使用Spring 的 DelegatingRequestProcessor 类

spring与struts的区别 Spring 和struts 整合的三种方式[1]

   全权委托

  无论用那种方法来整合第一步就是要为struts来装载spring的应用环境 就是在 struts 中加入一个插件

  struts config xml中

 <plug in className= springframework web struts ContextLoaderPlugIn >  <set property property= contextConfigLocation value= /WEB INF/applicationContext xml /> </plug in>

  spring 的配置文件被作为参数配置进来 这样可以省略对web xml 文件中的配置 确保你的applicationContext xml 在WEB INF目录下面

   使用Spring的ActionSupport

  Spring 的ActionSupport 继承至 apache struts action Action ActionSupport的子类可以或得 WebApplicationContext类型的全局变量 通过getWebApplicationContext()可以获得这个变量

  这是一个 servlet 的代码

public class LoginAction extends 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 );  }   }}

  applicationContext xml 中的配置

<beans> <bean id= loginDao class= cao dao LoginDao /></beans>

  这中配置方式同直接在web xml文件配置差别不大 注意 Action继承自 springframework web struts ActionSupport 使得struts和spring耦合在一起

    但实现了表示层和业务逻辑层的解耦(LoginDao dao = (LoginDao) ctx getBean( loginDao ))

    使用Spring 的 DelegatingRequestProcessor 类

  DelegatingRequestProcessor  继承自 apache struts action RequestProcessor 并覆蓋了里面的方法

lishixinzhi/Article/program/Java/ky/201311/29074  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码