spring实例化struts1或者struts2.x的action
struts2.x
整合S2SH时做了个测试程序,总是报无法实例化Action的错误。郁闷。
测试部分代码是:
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
StudentAction students = new StudentAction();
students.leader();
运行时总是显示Action不能实例化,开始很郁闷。看配置什么的都没问题啊。最后发现用
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
StudentBean students = (StudentBean)ctx.getBean("studentBean");
students.findLeader();
就没有问题,郁闷中。。
后来发现应该是这样的。
Struts.xml中应该是这样:
<action name="loginAction" class="loginAction" >//此处的action class属性应该是applicationContext中spring实例化该action的 bean id 属性值。这样才是spring实例化的。
<result name="leader">/Class_intro.jsp</result>
<result name="cards">/Class_member.jsp</result>
</action>
applicationContext.xml中:
<bean id="loginAction"
class="com.struts.action.StudentAction"
scope="prototype">
<property name="studentBean" ref="studentBean" />
</bean>
struts1.x
<action name="treeForm" path="/treeAction" scope="request"
parameter="actions"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="select"
path="/platform/common/treeSelect.jsp" />
<forward name="defeat" path="/common/error.jsp" />
</action>
applicationContext.xml中:
<bean id="treeAction"
class="com.struts.action.treeAction"
scope="prototype">
<property name="studentBean" ref="studentBean" />
</bean>
分享到:
相关推荐
2. **依赖注入(DI)**:Spring框架的核心特性之一就是依赖注入,它可以将Struts中的Action类实例化和管理交由Spring负责,这样可以实现Action类的解耦,并方便进行单元测试。 3. **AOP(面向切面编程)**:Spring...
然后,Struts2与Spring的整合主要是通过Spring的Struts2插件实现,它可以自动将Struts2的Action实例化交给Spring管理,实现依赖注入。这样,Action类就可以通过@Autowired注解获取到由Spring管理的其他服务bean。 ...
在3.0.x系列中,Spring提供了对Struts 1.x的支持,允许开发者利用Spring的特性来增强Struts应用,例如事务管理、AOP(面向切面编程)、数据绑定和类型转换等。 1. **Spring与Struts的整合机制** Spring与Struts的...
1. **依赖注入**:Spring的DI可以用于初始化Struts2的动作类,这样可以避免硬编码依赖,使得组件更易于测试和重构。 2. **Action实例管理**:Spring可以管理Struts2 Action的生命周期,包括单例或多例模式的选择,...
通过Spring的DI,我们可以轻松地为对象注入所需的依赖,如数据访问对象(DAO),而无需硬编码实例化过程。此外,Spring的AOP可以用于事务管理,确保在处理数据库操作时的原子性和一致性。 Hibernate4.x是ORM...
6. **整合工作**:在Struts2配置中指定Spring的Action代理,使Action实例由Spring管理。同时,通过Hibernate的SessionFactory获取Session,进行数据操作。 7. **编写业务逻辑**:定义Action类,使用Spring注入...
Struts2的插件系统使得扩展框架功能变得简单,例如,Spring插件可以方便地将Struts2与Spring框架集成,实现依赖注入。 综上所述,Struts2-core-2.0.12.jar包含了Struts2框架的核心功能,为Java Web开发者提供了高效...
2. **配置文件**:如struts-config.xml、spring-context.xml、hibernate.cfg.xml,分别配置Struts1.x的动作映射、Spring的bean定义和Hibernate的数据源及实体映射。 3. **实体类**:表示数据库中的表,通常会包含...
Struts1.x_action 是一个与Apache Struts 1.x框架相关的资源包,它包含了用于构建基于Java的企业级Web...不过,需要注意的是,Struts1.x框架现在已被认为过时,最新的项目推荐使用更新的框架如Spring MVC或Struts2。
Spring、Struts1.x 和 Hibernate 是经典的 Java Web 开发框架,它们的整合是构建企业级应用的常见方式。这三个框架分别负责不同的职责:Spring 提供依赖注入和事务管理,Struts1.x 负责视图和控制层,而 Hibernate ...
整合Struts2 和 Spring,可以通过Struts2的Spring插件实现,这样Action实例可以由Spring容器管理,实现依赖注入。配置完成后,Action类可以声明对Spring Bean的依赖,Spring会负责初始化和销毁这些Action实例。 ```...
通过Struts 2-Spring 插件,我们可以将Struts 2 的Action 对象交给Spring 来管理,Spring 负责初始化、配置和销毁这些对象。这样,Action 类不再需要自己去创建依赖的对象,而是通过构造函数或setter 方法接收Spring...
6. **实例化Action**:在Struts2的Action配置中,通过Spring插件的`<spring:property>`标签注入需要的Service或DAO。 **Eclipse集成**: 在Eclipse中,可以使用Maven或者Ivy等构建工具来管理SSH的依赖。创建项目时...
4. **整合工作流**:当用户发送请求到服务器,Struts2会拦截请求,根据配置找到相应的Action,由Spring实例化并注入依赖。Action执行业务逻辑,通过SessionFactory获取Session,执行数据库操作。完成后,Action返回...
这个"struts1.x + hibernate 3+spring 3 集成实例"是一个空项目,特别适合初学者理解和学习,因为有详细的注释,使得理解过程更为简单易懂。 Struts1.x 是一个基于MVC(Model-View-Controller)设计模式的Java Web...
3. **Action 类**:这些类继承自 `ActionSupport` 或自定义的 Struts2 动作类,并且被声明为 Spring Bean。Struts2 通过 ActionProxy 将请求转发到 Spring 容器来创建动作类实例。 4. **Service 类**:这些类通常...
这个"Struts2+Spring演示实例源代码"旨在展示如何将这两个框架整合在一起,以实现更高效、更模块化的Web应用开发。通过这个实例,开发者可以学习到以下关键知识点: 1. **Struts2框架**: - **Action类**:它是...
1. 配置Struts2:在struts.xml中配置Action,通过Spring插件指定Action的实现类,由Spring来创建和管理。 2. 配置Spring:在spring.xml中定义Bean,包括Action、Service、DAO以及SessionFactory。对于...
Struts2的Spring插件会在Struts配置文件(如struts.xml)中定义一个`<package>`,包含`<interceptors>`和`<default-interceptor-ref>`元素,这样Struts2就会知道如何与Spring协作,将Action实例化和依赖注入交给...
struts.action.extension 属性指定需要 Struts 2 处理的请求后缀,该属性的默认值是 action,即所有匹配*.action 的请求都由 Struts 2 处理。 14. struts.serve.static struts.serve.static 属性设置是否通过 JAR ...