Struts2的bug----------关于Struts2中找不到Action的

    最近在做项目的时候遇到了一个头疼的问题,所有的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同名的文件夹!!!

 各位看了我这个问题后,可以自己去测试一下,说实在为什么会有这样的错误,我还没找出原因,只知道结论就是这样,希望各位看了我这篇文章并且自己 测试以后如果发现我的结论不正确可以指正,前提是自己通过测试了,没有测试就没有发言权,为了节省各位的时间,我把我的测试代码放在下面了。

猜你喜欢

转载自tianhandigeng.iteye.com/blog/995031