`

spring struts2 整合时,采用自动注解,找不到action问题解决办法

阅读更多
在搭传统ssh框架时,碰到一个令人无比头疼的问题;
当采用注解式(即零配置)配置spring bean时,发现action怎么也找不到



更诡异的是,通过使用InitializingBean接口,发现LoginAction确实是已经被spring加载了的,而且其他bean也都能够正确组装。

分析下后,觉得问题不在于spring没有加载bean,那是不是struts2配置的问题呢?

我struts2的配置(部分)如下:

<action name="login" class="LoginAction">
    <result name="teacher">/index.jsp</result>
    <result name="fail">/loginFailed.html</result>
</action>


当url为/login时,struts2会向spring索取名字为"LoginAction"的action

两边线索都向中间聚拢,就是在这接头点出了问题:
package com.jyzz.tlms.action;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.jyzz.tlms.logic.LoginLogic;

@Component
public class LoginAction extends CommonAction{

	/**
	 * 
	 */
	private static final long serialVersionUID = -6851791110535117944L;
	
	@Autowired
	private LoginLogic ll;
	
	public String execute() throws Exception{
		ll.doSth();
		return "teacher";
		
	}

}



这里面作为一个菜b,不明白@Component后,spring是如何命名这个类的id的,如果想当然的以为是"LoginAction"的话(受@Autowired误导),那就是这个bug的来源了


所以,在这,为了解决这个bug,只要
@Component("LoginAction")

即显式的指明这个action的id即可。



也希望有大神能对@Component不显式指明id的情况下,spring默认给的id是什么这个问题做点解答。
  • 大小: 831.4 KB
分享到:
评论

相关推荐

    struts2和spring3注解整合问题

    通过以上步骤,你应该能够解决Struts2和Spring3注解找不到action的问题。如果问题依然存在,进一步检查项目的具体配置和代码,或者寻求更多专业帮助。记住,调试和解决问题是提升技术能力的重要环节。祝你成功解决...

    spring与struts2整合

    Spring 和 Struts2 是两个非常流行的 Java Web 开发框架,它们各自在应用程序的控制层和服务层扮演着重要的角色。Spring 提供了强大的依赖注入(DI)和面向切面编程(AOP),而 Struts2 则是用于处理 HTTP 请求和...

    Spring与Struts2整合

    - 在使用Struts2-Spring插件时,注意Action类的生命周期是由Spring控制,而非Struts2。 整合Spring和Struts2是一个常见的Java Web开发实践,熟练掌握这一技能能够提高开发效率,提升应用的可维护性和扩展性。在实际...

    Struts2+spring注解配置

    Struts2 和 Spring 的整合是企业级 Java Web 开发中常见的技术栈,通过注解配置可以使项目更加简洁、易于维护。Struts2 提供了一种使用注解替代 XML 配置的方式,使得开发者无需编写繁琐的 struts.xml 文件,即可...

    Struts2整合Spring、JPA

    在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...

    spring+struts2整合源码

    这通常通过使用Spring插件来实现,它会在Struts2启动时自动从Spring容器加载所有标记为@Controller的Bean。在`struts-plugin.xml`中,添加如下配置: ```xml &lt;constant name="struts.objectFactory" value="org....

    Spring与Struts 2整合.zip

    整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...

    整合struts2和spring

    这样,每次请求时,Struts2会从Spring容器中获取Action实例,而不是使用默认的实例化方式。 4. **Action类的配置**:Action类需要实现Spring的`org.springframework.stereotype.Component`注解,以便Spring能识别并...

    全注解,演示Struts2 + Spring + MyBatis整合

    在整合这三个框架时,首先需要在`struts2-spring-plugin.xml`中配置Struts2与Spring的集成,这样Struts2的Action就可以直接由Spring管理。接着,通过`applicationContext.xml`配置Spring的bean,包括数据库连接池、...

    Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解)

    - 然后,配置Struts2的核心过滤器,在web.xml中指定`struts2-convention-plugin`,这样Struts2会自动识别注解进行Action配置。 - 接着,配置Spring,创建Spring的配置文件,使用`@Configuration`注解声明这是一个...

    struts2 hibernate spring注解的整合(重写了巴巴运动网部门功能)

    在整合这三个框架时,我们需要使用Spring的`Struts2SpringPlugin`来使Struts2与Spring协同工作。此外,还需要在`struts.xml`或`struts-plugin.xml`中添加相应的配置。 在`lib1`文件中,可能包含了项目所需的依赖库...

    Struts2+Hibernate4+Spring3整合(注解和XML方式都有)

    Struts2、Hibernate4和Spring3是Java Web开发中的三个核心框架,它们分别负责MVC模式中的Action控制、持久化层管理和依赖注入。这三种框架的整合能够提供一个高效、灵活且可维护的Web应用解决方案。 **Struts2** 是...

    Struts2+spring注解配置简介

    Struts2与Spring的整合使得我们可以通过Spring的注解来管理Action类。首先,我们需要在Struts2的配置中启用Spring插件,然后在Spring的配置文件中声明Action类为bean。这样,Spring会负责Action类的实例化和依赖注入...

    spring_struts整合jar包

    2. **Spring MVC与Struts2的集成**:虽然两者都有MVC模式,但在整合时,通常会使用Struts2来处理请求的路由和响应,而Spring MVC则处理更复杂的视图解析和数据绑定。 3. **Spring事务管理**:Spring提供了强大的...

    spring3 struts2 Mybatis3 组件注解 事务注解 实例

    同时,Struts2与Spring框架的整合使得bean可以直接在Action类中注入,提高了代码的可维护性和可测试性。 Mybatis3则是一个轻量级的持久层框架,它简化了SQL操作并提供了强大的映射功能。Mybatis3支持注解方式的SQL...

    Struts2 hibernate spring 整合案例

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(Model-View-Controller)架构的实现,提供控制层的支持;Hibernate是对象关系映射(ORM)工具,负责数据持久...

    struts2整合Spring和hibernate案例

    这个"struts2.1.6 + hibernate3.1 + spring2.5"的整合案例主要展示了如何在不使用大量XML配置的情况下,通过注解来简化集成过程。以下是相关的知识点: 1. **Struts2框架**:Struts2提供了Action、Result和...

    spring struts2整合

    **添加Spring支持**:在Struts2的配置中,引入Spring插件,如`&lt;constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /&gt;`,这将使Struts2使用Spring来创建Action实例...

    struts2_mybatis_spring_框架实例整合_数据库 文档

    Struts2、MyBatis和Spring是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、数据持久层和应用上下文管理。这篇文档将深入探讨如何将这三个框架整合在一起,以及如何结合数据库进行实际应用。 ...

    struts2整合spring jar包

    4. **FilterDispatcher**:在Struts2与Spring整合时,通常会使用`StrutsSpringObjectFactory`替换默认的`DefaultActionProxyFactory`。为此,我们需要在web.xml中配置`StrutsPrepareAndExecuteFilter`而非传统的`...

Global site tag (gtag.js) - Google Analytics