`
空指针异常
  • 浏览: 23246 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

SSH整合时知识点

ssh 
阅读更多
本文采用struts2.3.16+hibernate3.6+spring3.2.8进行整合

jar包列表
  • antlr-2.7.6.jar
  • aopalliance-1.0.jar
  • asm-3.3.jar
  • asm-commons-3.3.jar
  • aspectjweaver.jar
  • commons-collections-3.1.jar
  • commons-dbcp-1.2.1.jar
  • commons-fileupload-1.3.1.jar
  • commons-io-2.2.jar
  • commons-lang3-3.1.jar
  • commons-logging-api.jar
  • commons-logging.jar
  • commons-pool-1.2.jar
  • dom4j-1.6.1.jar
  • freemarker-2.3.19.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar
  • hibernate3.jar
  • javassist-3.18.1-GA.jar
  • jta-1.1.jar
  • mysql-connector-5.1.8.jar
  • ognl-3.0.6.jar
  • slf4j-api-1.6.1.jar
  • spring-aop-3.2.8.RELEASE.jar
  • spring-beans-3.2.8.RELEASE.jar
  • spring-context-3.2.8.RELEASE.jar
  • spring-context-support-3.2.8.RELEASE.jar
  • spring-core-3.2.8.RELEASE.jar
  • spring-expression-3.2.8.RELEASE.jar
  • spring-jdbc-3.2.8.RELEASE.jar
  • spring-orm-3.2.8.RELEASE.jar
  • spring-tx-3.2.8.RELEASE.jar
  • spring-web-3.2.8.RELEASE.jar
  • struts2-convention-plugin-2.3.16.1.jar
  • struts2-core-2.3.16.1.jar
  • struts2-spring-plugin-2.3.16.1.jar
  • xwork-core-2.3.16.1.jar


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SSH1</display-name>
  
  <!-- 
   当hibernate采用懒加载时需要用到此过滤器,位于struts过滤器之前,
   因为必须等struts处理完JSP后才能关闭session;如果spring没有配置
   事务边界,则openSessionInView会认为所有事务为readonly,进行增删
   改动作时会报错     
  -->
  <filter>
  	<filter-name>openSessionInView</filter-name>
  	<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
        <!-- 查看源码可知,可过滤器依赖名字为“sessionFactory”的bean,
             如果默认名字不是“sessionFactory”,需要加如下初始化参数。 
        -->
  	<init-param>
  		<param-name>sessionFactoryBeanName</param-name>
  		<param-value>sf</param-value>
  	</init-param>
  </filter>
  
  <filter-mapping>
  	<filter-name>openSessionInView</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- spring容器初始化 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 加载的配置文件,具体参考spring的文章 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:beans.xml</param-value>
  </context-param>
</web-app>


另外几个注意点
1.struts2集成spring需加入struts-spring-plugin-2.3.16.jar,在此jar包中有个struts-plugin.xml,其中有个属性为struts.objectfactory=spring。
3.action有两种产生方式
3.1 由struts产生,会自动产生多实例
     action中的属性会自动按照name注入(对应struts-spring.xml的属性为struts.objectfactory.spring.autowire=name),如果存在对应名字的bean,则属性不需要加@resource注解;如果不存在相应的名字的bean,则会注入失败,此时应该加上@Resource。或者将struts.objectfactory.spring.autowire=type。
     action示例注解如下:
    
     @Action(value="userAction",
     results={@Result(name="list",location="/listuser.jsp")})
     

3.2 由spring产生
     action交由spring管理。示例如下:
    
 
     @Controller("userAction")
     @Scope("prototype")
     @Action(className="userAction",value="userAction"
             results={@Result(name="list",location="/listuser.jsp")})
     

     注意scope注解必须加,以及@Action中加className代表引用的spring容器的bean
4.中文问题,有如下几种办法
  a.在struts2.1.6以上版本,直接找struts默认配置文件default.properties文件中的常量struts.i18n.encoding,看看此属性的值是什么,默认是UTF-8,注意JSP也要是UTF-8。
  b.如果是struts2.1.6以下版本,可以自己写fitler(参考spring的实现)或者用spring提供的过滤器。
    
<filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  </filter>
  
    <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
分享到:
评论

相关推荐

    ssh整合的知识点

    以下将详细介绍SSH整合中的关键步骤和相关知识点: 一、配置数据源 在SSH整合中,数据源是连接到数据库的关键部分。在描述中提到了Oracle数据库的配置,包括URL(jdbc:oracle:thin:@localhost:1521:orcl)、用户名...

    SSH整合Jar包

    接下来,我们将深入探讨SSH整合的关键知识点。 首先,Spring框架是SSH的核心,它作为一个依赖注入(DI)和面向切面编程(AOP)的容器,负责管理应用程序的对象和它们之间的关系。在整合过程中,Spring通常被用来...

    SSH三大框架整合知识点

    方便学习SSH三大框架的同学们复习和系统的了解。其中知识点详细,也配有详细的例子和讲解。

    SSH整合实例源码

    以下是关于SSH整合及其中涉及的关键知识点的详细解释。 1. **Struts 2**: Struts 2 是一个基于MVC(Model-View-Controller)设计模式的开源Web应用框架,用于构建动态、数据驱动的Java Web应用程序。它提供了强大...

    SSH整合小案例,实用性比较强

    下面我们将详细探讨SSH整合的关键知识点。 首先,Spring是企业级应用中的核心框架,它负责管理应用的bean(对象)和依赖注入(DI)。在SSH整合中,Spring作为容器,负责控制对象的生命周期,以及对象间的依赖关系。...

    SSH整合笔记和配置文

    通过以上分析可以看出,SSH整合不仅涉及各个框架的基础知识点,还需要对这些框架如何协同工作有深入的理解。例如,如何在Spring中配置数据源以供Hibernate使用,如何在Struts2中正确配置Action等。此外,了解每个...

    ssh整合适合新手

    对于SSH初学者来说,了解以下知识点至关重要: 1. **SSH基础**:理解SSH的基本原理,包括客户端和服务端的概念,以及它们如何通过公钥和私钥进行身份验证。公钥用于加密,私钥用于解密,这种非对称加密方式保证了...

    SSH整合驱动包 SSH整合驱动包

    下面将详细阐述SSH框架及其整合驱动包的相关知识点。 **Spring框架**:Spring是一个开源的Java平台,主要负责管理应用对象的生命周期和配置。它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-...

    ssh整合全套jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Struts、...但随着技术的发展,现在Spring Boot等一站式解决方案越来越流行,SSH整合的应用逐渐减少,但其背后的理念和知识点仍然对理解现代Java Web开发至关重要。

    SSH框架整合的jar包

    下面将详细介绍这三个框架以及它们在整合中的关键知识点。 **Struts2** 是一个基于MVC设计模式的Action-Servlet框架,它主要用于处理HTTP请求并将其转发到相应的控制器。Struts2提供了强大的动作类和结果类型,通过...

    SSH整合实例

    接下来,我们将深入探讨SSH整合的关键知识点。 首先,**Spring框架** 是SSH整合的核心,它通过依赖注入(DI)和面向切面编程(AOP)来管理应用程序的组件。依赖注入允许对象之间的解耦,使得代码更易于测试和维护。...

    Maven ssh整合框架

    现在,让我们详细探讨"Maven ssh整合框架"的相关知识点。 1. Maven: Maven是Apache软件基金会开发的一款项目管理工具,它通过POM(Project Object Model)文件来管理项目的依赖、构建过程和配置。Maven提供了标准...

    ssh整合的一些配置文件

    SSH(Secure Shell)是一种...以上就是关于"SSH整合的一些配置文件"的知识点介绍。通过合理的配置,可以实现安全、高效的系统管理和自动化流程。在实际项目中,需要根据具体需求调整配置,确保系统的稳定性和安全性。

    Java SSH 框架整合,学习源码

    下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...

    SSH整合JBPM

    下面我们将详细探讨这个整合的相关知识点。 1. **Spring框架**:Spring是Java企业级应用的核心框架,提供依赖注入(DI)和面向切面编程(AOP)功能,使得代码更加模块化和易于测试。在SSH整合JBPM中,Spring主要...

    一个简单的ssh整合项目

    在“一个简单的ssh整合项目”中,你可能会学到以下关键知识点: 1. **环境搭建**:首先需要配置Java开发环境,安装Apache Maven或Gradle等构建工具,然后下载并配置SSH框架的库。 2. **项目结构**:理解Maven或...

    详解SSH框架和Redis的整合

    以下是整合的步骤和关键知识点: 1. **相关Jar文件**:为了实现SSH与Redis的整合,需要引入Redis客户端Jedis的jar包(如jedis-2.3.1.jar)以及Spring对Redis支持的相关jar包(如spring-data-redis-1.3.4.RELEASE....

    SSH三大框架整合jar包

    下面将详细介绍这三个框架及其整合的关键知识点。 **Spring框架** Spring是Java企业级应用的核心框架,它提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了Java应用的开发。在SSH整合中,Spring...

    ssh 整合所缺架包 Oracle驱动 SqlServer 驱动

    本文将深入探讨SSH整合过程中可能遇到的问题,特别是关于Oracle和Sql Server数据库驱动的相关知识点。 首先,SSH整合的核心是将Spring的依赖注入、Struts的MVC架构以及Hibernate的对象关系映射(ORM)结合在一起,...

    ssh 整合的所有包

    基于这些信息,我们可以深入探讨SSH相关的一些关键知识点: 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)、面向切面编程(AOP)以及众多其他特性,帮助开发者创建可测试、松耦合...

Global site tag (gtag.js) - Google Analytics