本文采用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整合中,数据源是连接到数据库的关键部分。在描述中提到了Oracle数据库的配置,包括URL(jdbc:oracle:thin:@localhost:1521:orcl)、用户名...
接下来,我们将深入探讨SSH整合的关键知识点。 首先,Spring框架是SSH的核心,它作为一个依赖注入(DI)和面向切面编程(AOP)的容器,负责管理应用程序的对象和它们之间的关系。在整合过程中,Spring通常被用来...
方便学习SSH三大框架的同学们复习和系统的了解。其中知识点详细,也配有详细的例子和讲解。
以下是关于SSH整合及其中涉及的关键知识点的详细解释。 1. **Struts 2**: Struts 2 是一个基于MVC(Model-View-Controller)设计模式的开源Web应用框架,用于构建动态、数据驱动的Java Web应用程序。它提供了强大...
下面我们将详细探讨SSH整合的关键知识点。 首先,Spring是企业级应用中的核心框架,它负责管理应用的bean(对象)和依赖注入(DI)。在SSH整合中,Spring作为容器,负责控制对象的生命周期,以及对象间的依赖关系。...
通过以上分析可以看出,SSH整合不仅涉及各个框架的基础知识点,还需要对这些框架如何协同工作有深入的理解。例如,如何在Spring中配置数据源以供Hibernate使用,如何在Struts2中正确配置Action等。此外,了解每个...
对于SSH初学者来说,了解以下知识点至关重要: 1. **SSH基础**:理解SSH的基本原理,包括客户端和服务端的概念,以及它们如何通过公钥和私钥进行身份验证。公钥用于加密,私钥用于解密,这种非对称加密方式保证了...
下面将详细阐述SSH框架及其整合驱动包的相关知识点。 **Spring框架**:Spring是一个开源的Java平台,主要负责管理应用对象的生命周期和配置。它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-...
SSH整合是Java Web开发中的一种常见模式,它结合了Struts、...但随着技术的发展,现在Spring Boot等一站式解决方案越来越流行,SSH整合的应用逐渐减少,但其背后的理念和知识点仍然对理解现代Java Web开发至关重要。
下面将详细介绍这三个框架以及它们在整合中的关键知识点。 **Struts2** 是一个基于MVC设计模式的Action-Servlet框架,它主要用于处理HTTP请求并将其转发到相应的控制器。Struts2提供了强大的动作类和结果类型,通过...
接下来,我们将深入探讨SSH整合的关键知识点。 首先,**Spring框架** 是SSH整合的核心,它通过依赖注入(DI)和面向切面编程(AOP)来管理应用程序的组件。依赖注入允许对象之间的解耦,使得代码更易于测试和维护。...
现在,让我们详细探讨"Maven ssh整合框架"的相关知识点。 1. Maven: Maven是Apache软件基金会开发的一款项目管理工具,它通过POM(Project Object Model)文件来管理项目的依赖、构建过程和配置。Maven提供了标准...
SSH(Secure Shell)是一种...以上就是关于"SSH整合的一些配置文件"的知识点介绍。通过合理的配置,可以实现安全、高效的系统管理和自动化流程。在实际项目中,需要根据具体需求调整配置,确保系统的稳定性和安全性。
下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...
下面我们将详细探讨这个整合的相关知识点。 1. **Spring框架**:Spring是Java企业级应用的核心框架,提供依赖注入(DI)和面向切面编程(AOP)功能,使得代码更加模块化和易于测试。在SSH整合JBPM中,Spring主要...
在“一个简单的ssh整合项目”中,你可能会学到以下关键知识点: 1. **环境搭建**:首先需要配置Java开发环境,安装Apache Maven或Gradle等构建工具,然后下载并配置SSH框架的库。 2. **项目结构**:理解Maven或...
以下是整合的步骤和关键知识点: 1. **相关Jar文件**:为了实现SSH与Redis的整合,需要引入Redis客户端Jedis的jar包(如jedis-2.3.1.jar)以及Spring对Redis支持的相关jar包(如spring-data-redis-1.3.4.RELEASE....
下面将详细介绍这三个框架及其整合的关键知识点。 **Spring框架** Spring是Java企业级应用的核心框架,它提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了Java应用的开发。在SSH整合中,Spring...
本文将深入探讨SSH整合过程中可能遇到的问题,特别是关于Oracle和Sql Server数据库驱动的相关知识点。 首先,SSH整合的核心是将Spring的依赖注入、Struts的MVC架构以及Hibernate的对象关系映射(ORM)结合在一起,...
基于这些信息,我们可以深入探讨SSH相关的一些关键知识点: 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)、面向切面编程(AOP)以及众多其他特性,帮助开发者创建可测试、松耦合...