昨天开始写了一个简单的小示例。。只有注册跟登陆,退出的功能。写到退出功能的时候写的提交地址是<form action="logout" >,然后在actionservlet里面配置action的时候写的是<action path="/logout"><forward name="logout" path=""/form/login.jsp"></action>,然后在在welcome.jsp里面点退出的时候一直是显示无法找到form/logout...
那个郁闷啊。。折腾了一天多,终于发现问题在哪里了。。。之前一直以为问题是处在logoutaction的处理过程之中,后来把退出功能的提交路径改为了aaaa,然后action path那也改成了aaaa,问题依旧存在,找不到form/aaaa。。于是开始怀疑是actionservlet压根没有捕捉到提交的logout。。。因为显示的是找不到form/aaaa,所以怀疑是路径的问题。。。。最后才发现问题到底在哪里。
退出按钮是在welcome.jsp中,而这个jsp是在form文件夹的里面,也就是说当选择退出的时候,表面看提交地址是logout,真正提交的地址是form/logout,而对应的action的path设置是logout,所以无法捕捉。。也就意味着<action path="/logout">这个是要看路径的,必须是直接在struts下的logout才会被送给定义的action,因此提交地址应该写成<form action="/struts/logout">这样才行。。。。。。
教训:以后写提交路径的时候,要不就把路径写成/struts/***.do,要不就在action配置的时候把action的path设置为带路径的,如path="/form/logout"