xingqing2130
2010-08-28 13:48
采纳率: 0%
浏览 174
已采纳

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 都可以访问???????????????????????????????????

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • passeddust 2010-08-28 23:45
    已采纳

    楼主,你的问题是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。
    好了,说了这么多,这个问题应该已经说清楚了,希望你也能够理解了。

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题