日期:2014-05-17  浏览次数:20745 次

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>
------解决方案--------------------
引用:
Quote: 引用:

也可能是表单提交的时候被js拦截了。可以在浏览器上直接请求一下action做测试。
也可能是配置文件出错了。检查一下namespace,<action ……></action>

浏览器上直接请求action是可以的,表单提交的时候没有明显的onsubmit事件,不过一大堆js文件中其他地方有没有onsubmit事件,难道让我悲催的一点点去找


///////////
如果浏览器url请求OK的,那么就是js的问题了。用Ctrl+F,查一个submit应该不慢的。如果多个文件的话,用File search应该也很快。
------解决方案--------------------
你还是最好把你的配置文件给我们看看 struts.xml的
------解决方案--------------------
没有报错  ?  空白是没有返回结果 还是一直在操作 还是自习点把  你action的访问路径对么  alert一下是什么 贴出来
------解决方案--------------------
试试在拦截器里面打印一下log,如果拦截器里面都没有,那肯定就是前台的问题了撒。
------解决方案--------------------
引用:
Quote: 引用:

表单提交的参数有问题 比如double类型 你在action 用 int 接的

我验证了,那样的话还是能进入action所指向的类中的,可是我遇到的情况在类中加静态块儿其中的代码都不能运行。


3楼说的已经很明白了,你如果类型都配置错误,是在拦截器里出错,你自己的action在最后一个拦截器后面,怎么可能打印出它里面代码,你试没试过就直接下这样的结论?
------解决方案--------------------
估计就是路径有问题,前面加上你的<%=path%>/user!xx.action吧
------解决方案--------------------
JS的问题,<s:submit/>和那个form1.submit();的冲突。