本帖最后由 antsshadow 于 2012-11-29 09:56:29 编辑

解决方案 »

  1.   

    namespace的默认值情况。namespace="",即表示不论url中敲了多少地址,都能直接访问对应jsp。
    如:
    //省略namespace,等同于namespace=""
    <action name="index">那么localhost:8080/Struts_example/temp/index可以访问,localhost:8080/Struts_example/temp/temp/index也同样可以访问。当找到了一个index,而没有其他地址能精确访问此index时,将自动使用namespace为""的package。
      

  2.   

    ……刚才那个忘了加<package>
    //省略namespace,等同于namespace=""
    <package name="user" extends="struts-default">
    <action name="index">
    <action name="someAction">
    </package>
    那么localhost:8080/Struts_example/temp/index可以访问,localhost:8080/Struts_example/temp/temp/index也同样可以访问。若访问action时没有指定namespace则struts2会先在根namespace-"/"里查找action,找不到再到默认namespace里查找action。再找不到就会报错。楼主在package标签中增加namespace="/temp",应该不会再出现这样的问题了。