Struts2中action的方法被执行两次
2016-07-17 23:41
260 查看
最近在用struts2遇到一个怪问题,struts2的默认方法老是执行两次,搞了大半天都没有找到,在最后即将放弃时终于找打了,原来是响应的页面有 一个图片标签,而图片标签请求的地址不存在,它就默认再次请求了当前请求的url,造成了两次执行struts2的方法。为此特做下次笔记,给自己和大家 分享,同时还在网络上搜索其它几个造成的方法。
1,被响应的图片URL不存在,导致请求原谅url而执行了两次;
2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知;
结论:action中方法最好不要以get开头。
3,提交标签中用到JS脚本去执行的话,如写成<input type="submit" ... onclick="save()>的话,submit要执行一次,onclick="save()也要执行一次,去掉其中一个即可;
3.2:
jsp:
<!--使用按钮提交form-->
<s:form action="">
<input type="button"onclick="search()"value="search"/>
</s:form>
解决办法:
<s:form action="" onsubmit="return false;">
原因是,form表单提交会被struts2当作action执行.
结论:尽量用html自带的form 标签
4 json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息。
1,被响应的图片URL不存在,导致请求原谅url而执行了两次;
2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知;
结论:action中方法最好不要以get开头。
3,提交标签中用到JS脚本去执行的话,如写成<input type="submit" ... onclick="save()>的话,submit要执行一次,onclick="save()也要执行一次,去掉其中一个即可;
3.2:
jsp:
<!--使用按钮提交form-->
<s:form action="">
<input type="button"onclick="search()"value="search"/>
</s:form>
解决办法:
<s:form action="" onsubmit="return false;">
原因是,form表单提交会被struts2当作action执行.
结论:尽量用html自带的form 标签
4 json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息。
相关文章推荐
- JAVA:WordCount
- Spring_Jdbc连接管理
- 关于spring的事务操作方法
- 遍历list的几种方式
- 为什么切面要切业务层?
- java内存模型
- spring为什么实现接口?
- Java加密问题的的_改进
- Java加密问题的的_实现
- Java基础14----正则表达式、Math类、System类、BigInteger、日期类
- Java toString的性能优化方案比较
- eclipse 界面开发--windowbuilder
- 如何在Ubuntu 14.04中安装最新版Eclipse
- 用java创建一个简单的服务器
- 如何在Eclipse和Android Studio中使用xUtils3(一)
- java项目上红叉报错的解决方法
- java基础--08代码块、继承
- JAVA之图标and布局
- Maven工程聚合,多个Java工程、web工程聚合
- myeclipse环境下使用spring