`
zcz123
  • 浏览: 158757 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

SSH整合的几种最常见方式 .

 
阅读更多

Spring实例Action的两种方式:
1、DelegatingActionProxy类整个Action由Spring实例
2、DelegatingRequestProcessor类extends RequestProcessor重写processActionCreate方法,由Spring创建

web.xml
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


SSH整合第一式:缺点:麻烦一个方法对应一个<bean>如何实现整合的:
重写了Action类的execute方法,使用Spring容器来实例bean,查找bean的名字是<action path="">的值
①struts-config.xml
<action ……
      path="/doSave"
      type="org.springframework.web.struts.DelegatingActionProxy">
</action>
②applicationContext.xml
<bean name="/doSave" class="com.yourcompany.struts.action.UserinfoAction">
      <property name="manager" ref="userInfoManager"></property>
</bean>
注解:name="/doSave" 取得时<action path="/doSave" />


SSH整合第二式:第一式的延伸,使用MyDelegatingActionProxy类继承DelegatingActionProxy和DispatchAction类
缺点:实现起来太繁琐;优点:一个Action类对应一个<bean>
①struts-config.xml
<action ……
      type="com.yourcompany.struts.action.UserinfoAction">
</action>
②applicationContext.xml
<bean name="com.yourcompany.struts.action.UserinfoAction" class="com.yourcompany.struts.action.UserinfoAction">
      <property name="manager" ref="userInfoManager"></property>
</bean>
③Action extends MyDelegatingActionProxy
注解:
1、如果不继承DispatchAction类的话就会产生死循环调用execute方法的问题。
DelegatingActionProxy类的作用:改变Action类的创建方式,改成由Spring容器创建的
DispatchAction类的作用:把execute方法分解成多个普通方法执行
2、屏蔽死循环问题必须在MyDelegatingActionProxy类重写execute方法一下是此类的关键代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  Action delegateAction = getDelegateAction(mapping);
  String parameter = getParameter(mapping, form, request, response);
  String name = getMethodName(mapping, form, request, response, parameter);
  return dispatchMethod(mapping, form, request, response, name,
    delegateAction);
 }


SSH整合第三式:使用DelegatingRequestProcessor类
缺点:一个方法一个<bean>
①struts-config.xml
<action ……
      type="com.yourcompany.struts.action.UserinfoAction">
</action>
<controller>
  <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
②applicationContext.xml
<bean name="/doSave" class="com.yourcompany.struts.action.UserinfoAction">
      <property name="manager" ref="userInfoManager"></property>
</bean>
注解:name="/doSave" 取得时<action path="/doSave" />


SSH整合第四式:自定义MyDelegatingRequestProcessor类extends DelegatingRequestProcessor,重写determineActionBeanName方法,return mapping.getType();
优点:一个Action对应一个<bean>,[推荐,常用]
①struts-config.xml
<action ……
      type="com.yourcompany.struts.action.UserinfoAction">
</action>
<controller>
  <set-property property="processorClass" value="MyDelegatingRequestProcessor类路径"/>
</controller>
②applicationContext.xml
<bean name="com.yourcompany.struts.action.UserinfoAction" class="com.yourcompany.struts.action.UserinfoAction">
      <property name="manager" ref="userInfoManager"></property>
</bean>

SSH整合第五式:继承ActionSupport、DispatchActionSupport、MappingDispatchActionSupport
①struts-config.xml
<action ……
      type="com.yourcompany.struts.action.UserinfoAction">
</action>
②applicationContext.xml
<bean name="com.yourcompany.struts.action.UserinfoAction" class="com.yourcompany.struts.action.UserinfoAction" />
<bean id="userinfoManager" class="com.yourcompany.struts.action.UserinfoAction" />
注解:UserInfoAction extends MappingDispatchActionSupport实现onInit方法
manager=(IUserInfoManager) getWebApplicationContext().getBean("userInfoManager");
不需要set方法


问1:这段代码在什么时候执行,起什么作用?
<controller>
    <set-property property="processorClass" value="org.springframework.web.struts.DelegatingActionProxy"/>
</controller>
答:在ActionServlet类的process方法中
RequestProcessor processor = getProcessorForModule(config);读取返回一个RequestProcessor对象,如果没有配置的话就会采取默认的,也就是Struts的核心类RequestProcessor


问2:ContextLoaderPlugIn类的作用,如何使用?
答:在struts-config.xml中配置
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
   <set-property property="contextConfigLication" value="/WEB-INF/classes/applicationContext.xml"/>
  </plug-in>
相当于再web.xml中配置
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath*:applicationContext.xml</param-value>
</context-param>
道理是相同的。
一般是配置在web.xml中。

分享到:
评论

相关推荐

    ssh2三种整合方式

    SSH2,全称为Struts2、Spring和Hibernate的整合,是一种常见的Java Web开发框架组合,用于构建高效、灵活的企业级应用程序。在这个框架中,Struts2负责MVC(模型-视图-控制器)架构,Spring提供了依赖注入和事务管理...

    ssh整合jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...

    ssh框架整合优点.doc

    SSH 框架整合是Java开发中常用的一种技术栈,主要由Struts、Spring和Hibernate三个框架组成,它们各自承担着不同的职责,共同构建出高效、可维护的J2EE应用。 Struts作为表现层框架,是MVC设计模式的具体实现,主要...

    ssh框架整合搭建[整理].pdf

    SSH框架整合搭建是软件开发中常见的一种技术实践,它结合了Struts、Spring和Hibernate三个主要的开源框架,用于构建高效、可维护的企业级Web应用。以下是对SSH框架整合搭建的详细步骤和知识点的解析: 1. **Struts...

    ssh整合基本开发包

    在进行SSH整合时,还需要注意以下几点: 1. 版本兼容性:确保使用的SSH框架版本之间是兼容的,避免因版本不匹配导致的问题。 2. 错误处理:正确处理可能出现的异常,例如数据库连接问题、SQL查询错误等。 3. 性能...

    SSH 整合实例

    SSH整合是Java开发中一种常见的技术栈组合,主要包括Struts2、Spring2.5和Hibernate3这三大框架。这三个框架的结合,旨在提供一个高效、松耦合且可扩展的Web应用开发解决方案。 首先,Struts2是一个强大的MVC...

    SSH整合案例

    SSH整合,全称为Struts+Spring+Hibernate整合,是Java Web开发中常见的一种技术栈组合。这个案例将探讨如何在实际项目中将这三个强大的开源框架有效地集成在一起,以实现高效、松耦合的Web应用程序。 Struts是MVC...

    SSH整合所需的jar包

    SSH(Struts+Spring+Hibernate)是Java Web开发中一种常见的框架集成,它结合了Struts的MVC设计模式、Spring的IoC(控制反转)和AOP(面向切面编程)以及Hibernate的对象关系映射功能,为开发者提供了一种高效、灵活...

    SSH(Struts2.1+Spring2.X+Hibernate3.X)整合,新手必备

    SSH整合是Java Web开发中的一种常见技术组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架分别在表现层、业务层和服务层扮演重要角色,它们的结合能够帮助开发者构建高效、灵活和可维护的Web应用...

    SSH所有jar包整合

    SSH(Struts、Spring、Hibernate)是Java Web开发中常用的一种框架组合,它结合了Struts的MVC设计模式、Spring的IoC(控制反转)和AOP(面向切面编程)以及Hibernate的对象关系映射功能,大大简化了Java企业级应用的...

    ssh框架整合项目

    SSH框架整合项目是一种常见的Java Web开发模式,它涵盖了Spring、Struts和Hibernate这三个流行开源框架的集成应用。Spring提供了依赖注入(DI)和面向切面编程(AOP),用于管理对象和处理业务逻辑;Struts则负责MVC...

    SSH框架整合jar包

    SSH框架整合是Java Web开发中常见的一种技术栈组合,它由Spring、Struts2和Hibernate三个框架构成。这个"SSH框架整合jar包"是开发者为了方便项目构建,避免手动逐个添加和配置这三个框架所需的库文件而制作的集合。...

    SSH整合项目及笔记.rar

    SSH整合是Java开发中一种常见的Web应用程序框架组合,由Struts、Spring和Hibernate三个开源框架构成。这个项目和笔记提供了关于如何将这三个框架集成到一起的详细步骤和实践经验。 Struts是MVC(模型-视图-控制器)...

    SSH-struts第一种方式整合

    SSH整合是Java开发中常见的一个技术组合,它涵盖了Spring、Struts和Hibernate这三个开源框架。SSH框架的整合能够提供一个高效、灵活且可扩展的Web应用程序解决方案。在本项目"SSH-struts第一种方式整合"中,我们将...

    ssh框架 整合代码

    SSH整合的具体步骤通常包括以下几个部分: 1. **配置Spring**:创建Spring的配置文件,定义Bean并配置依赖注入。比如,定义数据源、SessionFactory、Service、DAO等,并设置相应的属性。 2. **配置Struts2**:设置...

    SSH框架整合例子

    SSH框架整合是软件开发中的一种常见技术,主要指的是Spring、Struts2和Hibernate这三大开源框架的集成。这个例子提供了SSH框架整合的具体实现,对于初学者来说,是理解和掌握这一技术的重要参考资料。 Spring是一个...

    整合ssh+ajax案例.doc

    SSH(Struts+Spring+Hibernate)是一个常见的Java Web开发框架,用于构建高效、可维护的Web应用。Ajax(Asynchronous JavaScript and XML)则是一种在不刷新整个网页的情况下更新部分网页的技术,可以提供更流畅的...

    SSH整合文档以及SSH整合实例源码

    SSH整合是Java EE开发中的一种常见模式,它指的是Spring、Struts和Hibernate这三个开源框架的集成。这三种框架分别在不同层面上为Web应用程序提供服务,Spring负责IoC(Inversion of Control)和AOP(Aspect ...

Global site tag (gtag.js) - Google Analytics