Struts2.1.8 访问路径问题

    <action name="list" class="web.demoController"
        <result>/demo.jsp</result>
    </action>

    <!-- Add actions here -->
</package>

怎么http://localhost:8080/test/demo.action 或者 http://localhost:8080/text/xx/demo.action 都可以访问???????????????????????????????????

楼主,你的问题是struts2命名空间的问题
struts2跟空间,也就是struts-default的namespace,就是namespace="/"或者namespace=""。
所以你在 中将namesapce设为"/",其实相对于没有设置新的命名空间,而还是使用的默认跟空间。这样,当你以http://localhost:8080/test/list.action 路径访问时,struts显然会在根空间里直接找到list.action。而当你使用http://localhost:8080/text/xx/demo.action路径访问时,首先,struts会在命名为namespace=xx的命名空间里寻找,没有找到,就会到根空间里继续寻找,这时找到了list.action,所以还是能够访问。
你可以做这样的实验,你将里面的namespace设为namespace="demo",然后以http://localhost:8080/text/abc/demo.action路径访问,这时就访问不到这个action了,因为此时,struts现在namespace为“abc”的命名空间里寻找,没有找到,继续在根空间寻找,还是没有,这时就会报异常。这种设置下只有http://localhost:8080/text/demo/demo.action路径可以访问该action。
好了,说了这么多,这个问题应该已经说清楚了,希望你也能够理解了。

[code="java"]http://localhost:8080/test/demo.action[/code]?
按你的写法,是[code="java"]http://localhost:8080/test/list.action[/code]吧

http://localhost:8080/test/list.action 或者 http://localhost:8080/text/xx/list.action

上面两个访问路径struts2会分别在namespce为/text和/text/xx,下面去找名字为list的action.当没找到的时候,它会找默认的namespce / 下面的list.action如果默认下面也没有,就会报错,你可以试试