Struts2表单提交后没有进入action的痕迹
在看一个别人写的web项目,应用Struts2,没有Spring和hibernate。有一处表单提交在action中获取不到任何痕迹。
如下,使用javascript设置提交的action和进入的方法:
form1.action = "user!artUdSava.action";
alert(form1.action);
form1.submit();
其中alert是我加进去调试用的,能够显示出正确的信息。但是在后台的artUdSava方法中最开始加入System.out语句却没有输出任何信息。也就是说找不到表单提交到了后台的痕迹。但是前台的jsp跳到了错误页面(error.jsp)。
整个过程中控制台没有输出任何东西。我自己排查没有其他的过滤器和拦截器,求教其他有经验的大神,指点一下还有没有其他的可能性导致这种情况?
礼多人不怪,先谢了!
------解决方案--------------------是404吗?提交的时候把base带上呢或者给你的User的action加上@ParentPackage()
------解决方案--------------------表单提交的参数有问题 比如double类型 你在action 用 int 接的
------解决方案--------------------页面和action之间的配置有误!
------解决方案--------------------会不会是你namespace设置了别的命名
------解决方案--------------------先从 配置文件看起 还有你的这个action没有请求类型么 post get?
------解决方案--------------------也可能是表单提交的时候被js拦截了。可以在浏览器上直接请求一下action做测试。
也可能是配置文件出错了。检查一下namespace,<action ……></action>
------解决方案--------------------
///////////
如果浏览器url请求OK的,那么就是js的问题了。用Ctrl+F,查一个submit应该不慢的。如果多个文件的话,用File search应该也很快。
------解决方案--------------------你还是最好把你的配置文件给我们看看 struts.xml的
------解决方案--------------------没有报错 ? 空白是没有返回结果 还是一直在操作 还是自习点把 你action的访问路径对么 alert一下是什么 贴出来
------解决方案--------------------试试在拦截器里面打印一下log,如果拦截器里面都没有,那肯定就是前台的问题了撒。
------解决方案--------------------
表单提交的参数有问题 比如double类型 你在action 用 int 接的
我验证了,那样的话还是能进入action所指向的类中的,可是我遇到的情况在类中加静态块儿其中的代码都不能运行。
3楼说的已经很明白了,你如果类型都配置错误,是在拦截器里出错,你自己的action在最后一个拦截器后面,怎么可能打印出它里面代码,你试没试过就直接下这样的结论?
------解决方案--------------------估计就是路径有问题,前面加上你的<%=path%>/user!xx.action吧
------解决方案--------------------JS的问题,<s:submit/>和那个form1.submit();的冲突。