xuhanchn
2016-03-15 06:22
采纳率: 92.7%
浏览 1.6k
已采纳

求解,struts2的struts.xml为什么必须添加namespace="/"

我用的struts2.1.但是总是报错No result defined for XXXaction and result success。
后来我在package里加了namespace="/"就好了。
这是我在别的地方找到的方法?
但是为什么会这样?这是struts2自身的bug吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • xuhanchn 2016-03-16 01:39
    已采纳

    可是我在书上的例子看到package是不用namespace="/"的啊?书上是struts2.0.我自己用myeclipse做的struts2.1就要用了。这是为什么?是2.0默认查找action的位置就是在根namespace下,所以不用加那个声明吗?

    点赞 打赏 评论
  • 夜半无声 2016-03-15 07:21

    namespace命名空间是区分不同的action!
    默认的命名空间是空字符串””,也就是不设置namespace属性时候的命名空间。我们在匹配一个action的时候,先到它指定的命名空间中去找,如果没有再到这个默认的命名空间中去找。Struts2还支持根命名空间(“/”),当一个request直接请求context path下面的资源时,struts2会首先到跟命名空间下去寻找匹配的action,例如请求是http://server/myapp/bar.action,那么我们首先会去”/”命名空间下去寻找这个action

    点赞 打赏 评论
  • 丑旦 2016-03-15 07:22

    不是bug,struts2标签中,有一个namespace属性,可以根据namespace的不同而向服务器提交不同的 package的action的请求。
    “/”表示根namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个package中查找。"”表示默认de namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找。

    点赞 打赏 评论

相关推荐 更多相似问题