我的action配置文件    <package name="user" extends="struts-default" namespace="/u/f">
    
        <!-- 用于转向到普通用户注册页面 -->
     <action name="forUrReg"  class="urSayHiMyUserAction">
<result>
/WEB-INF/front/public/ur_reg_userReg.jsp
</result>
     </action>        <!-- 用户提交注册表单后 -->
     <action name="userReg" class="urSayHiMyUserAction" method="userReg">
         <!-- 注册出错,帐号已存在或验证码错误 -->
<result name="REG_ERROR" >
/WEB-INF/front/public/ur_reg_userReg.jsp
</result>
<!-- 号码池无号码或者系统繁忙错误 -->
<result name="SYS_PROHIBIT" >
/WEB-INF/front/public/ur_reg_prohibit.jsp
</result>
<result name="REG_SUCCESS">
/WEB-INF/front/public/ur_reg_regSucc.jsp
</result>
     </action>
    
    </package>
我的项目名是: show
访问注册页面的请求链接是:http://localhost:8880/show/u/f/forUrReg.do如果验证码验证错误,则会再返回注册页面进行提示,这时候,我发现我的地址栏链接变成了:
http://localhost:8880/show/u/f/u/f/forUrReg.do
如果再输入一个错误的验证码,再提交,错误了,又返回,则链接又会变成了:
http://localhost:8880/show/u/f/u/f/u/f/forUrReg.do可见, u/f/ 不断地重复和增加,但是最终返回的页面是正常的,那么,为什么会出现这样的情况? 如果解决呢??? 

解决方案 »

  1.   

    这跟struts2的查找action有关,你可以去看看API,
      

  2.   

    昨天查了一下资料,ACTION的查找顺序确实是这样的。
      

  3.   

    action 可以被匹配到,有精确的就精确匹配,没有精确的就找最先能被模糊匹配的匹配,所以地址栏上输入/dashudihasduihasi/action.action也是能被匹配的,这个时候需要namespace留空,如果特殊的情况需要配置如ADMIN下的,则需要对namespace书写,进行精确匹配
      

  4.   

    这与struts2中的action名称的搜索顺序有关,如有需要我这有视频,你可以看看
    QQ 564991326