你是否是在<html:form>中引用跨模块的action出现这样的问题?这确实是struts的一个bug,我以前遇到过,后来通过看struts的源码,发现:
<html:form action="XXX">
先判断XXX中是否有?号,如果有,则截取?号以前的,这就意味着switchdo根本不能起到作用,然后判断XXX中是否以/开始,如果不是以/开始,则自动加上/,这也就意味着不能使用../XXX的相对路径形式
解决的办法
1:修改源码
2.使用第一种形式
3.在每个struts-config中都配置(麻烦)

解决方案 »

  1.   

    我在jsp里面这样用的:
    <html:form action="/user/logon">
    其中/user/logon对应struts-config-user.xml里面的其中一个action的path属性如果使用第一种形式,那么我的eclipse-struts插件就无法工作了,因为这个插件采用的第二种方法。看来只有修改源码了,狂晕
      

  2.   

    我没有使用跨模块的方法啊?这个页面本来就在user这个模块里面
      

  3.   

    <html:form action="/user/logon">
    struts是以当前模块来查找的,你如果是在别的模块,比如news,那你这句的路径就是/news/user/logon,这应该是struts的一个重大bug!在别的里面,比如html:link就不是这样处理的.
      

  4.   

    <html:form action="/user/logon"> --------><html:form action="logon">