最近在做项目的时候遇到了一个头疼的问题,所有的struts2的配置都是正确的,这我可以保证,但是就是一直报错,说找不到action,弄了很久今晚终于找到原因了,现在来模拟一下我的测试:
struts2的配置文件如下所示:
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="login" extends="struts-default"> <action name="login" class="login.TestAction"> <result name="success">/index.jsp</result> </action> </package> </struts>
很简单,就是在默认命名空间下配置了一个名为login的action,实现的是当url为
http://localhost:8080/login
的时候进行处理,这里没有带后缀名.action也是可以的:
这是登录页面中的一个链接:
<a href="login">登陆</a>
但是奇怪的是这样配置以后一直报错:
这个报错很奇怪,而且地址栏的URL变得也很奇怪:
看到没有后面无缘无故多了一个"/",这就奇怪了,对这个问题弄了很久最后终于找出一点线索了,我的WEB-ROOT下,建了一个名为login的文件夹:
结果我测试了一下如果删掉这个与action同名的文件夹后可以正常显示,加上以后又会报这样的错误。经过测试后我得出了结论:
就是WebRoot目录下不能有与action同名的文件夹!!!
各位看了我这个问题后,可以自己去测试一下,说实在为什么会有这样的错误,我还没找出原因,只知道结论就是这样,希望各位看了我这篇文章并且自己 测试以后如果发现我的结论不正确可以指正,前提是自己通过测试了,没有测试就没有发言权,为了节省各位的时间,我把我的测试代码放在下面了。
相关推荐
当这三个文件一起导入到项目中时,它们可以协同工作,解决因Struts2和JSON插件版本不匹配导致的问题。在实际操作中,为了保持项目的整洁和避免版本冲突,您需要先删除原有的JSON相关库,再导入这些更新版本的文件。...
1. **Action**: Struts2中的Action是业务逻辑处理的核心,它负责接收用户请求,处理数据,并返回结果。每个Action类通常对应一个特定的用户交互场景。 2. **Action Mapping**: 这是配置中定义Action与URL路径的映射...
搭建struts2 + spring框架时需要使用的关联jar struts.xml中action的属性class引用applicationContext中bean的属性id指向的值
"升级百度一大堆不做说明"暗示了在互联网上可以找到大量关于如何升级Struts2到这个版本的教程和指南。 标签中提到了"2.5.1.6",这可能是打字错误,应该是"2.5.16",这表明了这个版本是针对之前版本的bug修复。在...
例如,著名的CVE-2017-9791(Ognl注入漏洞)就影响了多个Struts 1.x版本,因此在实际生产环境中,应谨慎评估使用这些旧版本的风险,并考虑升级到更安全的版本或切换到Struts 2或其他现代框架。 总之,Struts 1.3.8...
Struts2-Spring-Plugin-2.2.3.1.jar是Apache Struts框架与Spring框架集成的一个插件,主要用于帮助开发者在基于Struts2的应用程序中无缝地使用Spring进行依赖注入(Dependency Injection,DI)和控制反转(Inversion...
在项目中使用Struts 2.3.32时,需要将lib目录下的所有JAR文件添加到项目的类路径中。同时,还需要配置web.xml文件以初始化Struts 2的过滤器,并可能根据需求编写Action、Interceptor、Result和配置文件(struts.xml...
具体到struts-2.3.16版本,这是Struts2的一个稳定版本,包含了多个组件和修复的bug,旨在提供更高效、更安全的开发环境。 核心jar包是Struts2框架的基础,主要包括以下几个关键组件: 1. **struts2-core.jar**:这...
5. **整合测试**:Struts2SpringUnitDemo还涉及到了框架的整合测试,这通常是为了确保Struts2的Action能够顺利地与Spring管理的bean交互。整合测试可能会包括检查Action是否能正确地从Spring容器获取依赖,以及在...
在Struts 2中,可以用来序列化和反序列化Action中的Java对象,方便前后端的数据交换。 4. **google-gxp-0.2.4-beta.jar**:Google的GXP(Generic XML Presentations)是一个用于生成多种输出格式的模板语言,如HTML...
Struts 2.2.1.1是该框架的一个特定版本,此版本主要针对Struts 2.1进行了一些改进和增强,旨在提高性能和稳定性,同时也可能修复了之前版本中发现的安全漏洞和bug。 在"struts-2.2.1.1-all.rar"这个压缩包中,包含...
4. **使用方法**:将这些jar包导入到项目的类路径中,然后根据Struts2的配置文件(通常为struts.xml)来设置Action、Result和Interceptor。Action是处理用户请求的业务逻辑,Result定义了请求处理后的结果页面或动作...
在Struts2框架中,核心组件包括Action、Result、Interceptor等。Action是处理用户请求的核心,它接收HTTP请求并执行业务逻辑。Result则负责将处理结果呈现给用户,如跳转到新的页面或者返回JSON数据。Interceptor则...
在Struts 2中,OGNL被用来传递和解析Action方法的参数以及视图层的数据绑定。 7. **Apache Commons IO** (`commons-io-2.0.1.jar`): 提供了各种IO操作的工具类,如文件读写、流处理等,简化了处理输入输出流的复杂...
标题中的"struts2-core-2[1].0.11.zip"指的是Struts2的核心库版本2.0.11.2,这是一个重要的组件,包含了处理请求、动作映射、结果渲染等核心功能。 在描述中提到的"有错误是难免的",这通常是指任何软件,包括开源...
Struts2.5.14.1是Struts2框架的一个版本,它包含了修复的bug、改进的功能和最新的依赖。 在描述中提到的"Struts-2.5.14.1 项目最小需求jar包",指的是为了运行一个基本的Struts2应用程序所需的最少集合的Java档案...
- **Struts2**:继承了Struts1的优点,同时支持在Action类和拦截器中直接使用资源文件,更方便地实现国际化。 5. **异常处理** - **Struts1**:异常处理不够灵活,需要在struts-config.xml中配置全局异常处理。 ...
在实际项目中,部署Struts2应用通常需要将`struts2-core.jar`和其他相关依赖包(如ognl、freemarker等)添加到项目的类路径中。在本压缩包`struts-2.5.17`中,除了核心库之外,可能还包括了其他模块和插件,如Struts...
2. **Action类**:在Struts中,Action类是控制器的关键组件,它处理用户的HTTP请求,执行相应的业务逻辑,并通过ActionForward决定页面跳转的方向。 3. **配置文件**:主要包括struts-config.xml,这是Struts框架的...