关于struts2中action请求会执行两次的问题
关于struts2中action请求会执行两次的问题
在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行两次了。继续查找,发现调用的是返回json数据格式的action,如果是调用返回页面的action就不会有这种问题。
结合网上的搜索,总结了一下:
1. json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息。.
2. ajax模式下,调用的action方法不能为get*方式命名,内中机理未知。
结论:action中方法最好不要以get开头。
最近在用struts2遇到一个怪问题,struts2的默认方法老是执行两次,搞了大半天都没有找到,在最后即将放弃时终于找打了,原来是响应的页面有一个图片标签,而图片标签请求的地址不存在,它就默认再次请求了当前请求的url,造成了两次执行struts2的方法。为此特做下次笔记,给自己和大家分享,同时还在网络上搜索其它几个造成的方法。
1,被响应的图片URL不存在,导致请求原谅url而执行了两次;
2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知;
3,提交标签中用到JS脚本去执行的话,如写成<input type="submit" ... onclick="save()>的话,submit要执行一次,onclick="save()也要执行一次,去掉其中一个即可;
json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息。.
谨记action 如果用到JSON ( type="json") 中方法名不要用get开头,
*.action 注意用json最好action方法名不要以get开头,json把Acion类中所有的已get开头的方法返回值封装
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 标签
关于struts2中action请求会执行两次的问题的更多相关文章
- Struts2中Action接收参数的方法主要有以下三种:
Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式): a.定义:在Action类中定义属性,创建get和set方法: b.接 ...
- Struts2中validate数据校验的两种常用方法
本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器. 1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...
- 基于用户登陆的struts2中action的分类详解
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
- struts2中Action到底是什么,怎么理解
struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类, ...
- struts2中action手动获取參数
struts2中action手动获取Session,jsp页面參数 1. ActionContext 在Struts2开发中,除了将请求參数自己主动设置到Action的字段中,我们往往也须要在Acti ...
- Struts2中Action取得表单数据的几种方法
Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...
- jap页面获取struts2中action中变量的值
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...
- Struts2中Action接收参数的方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...
- Struts2中Action自己主动接收參数
Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式) a.定义:在Action类中定义属性,创建get和set方法. b. ...
随机推荐
- ruby特性
1. ruby类结构 每个类都是Class类的对象 所有类都继承自BasicObject类(Module类不能实例化) 2. 单例方法 单例方法可以不定义在类中,只为某个对象定义方法,所以称为单例方法 ...
- sublime3快捷键汇总
!+tab生成html结构文档选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子: 快速选 ...
- Nodejs 集成到IIS
http://www.hanselman.com/blog/WebMatrixAndNodejsTheEasiestWayToGetStartedWithNodeOnWindows.aspx http ...
- 【转】不同VLAN之间相互通信及VTP、STP、EtherChannel概念
厘清最后一个概念. 转了网上两个相关帖子: http://www.net130.com/CMS/Pub/Tech/tech_zh/2009_03_12_97386_3.htm http://blog. ...
- 【POJ1021】Intervals (最短路解差分约束)
题目: Sample Input 5 3 7 3 8 10 3 6 8 1 1 3 1 10 11 1 Sample Output 6 题意: 我们选数,每个数只能选一次.给定n个条件[ai,bi]和 ...
- 关于memory 和 cache
这篇文章介绍了cache的相关知识,包括全相关.组相关.缓存与置换策略.WriteThrough和WriteBack策略.cache体系.CPUID和缓存一致性.介绍了两种缓存一致性的协议:snoop ...
- Android Wear 开发入门
大家好,我是陆嘉杰,我是一名Android开发者.我想和大家进行一些技术交流,希望越来越多的人能和我成为好朋友. 大家都知道,智能手表是下一个开发的风口,而这方面的技术又属于前沿,所以和大家分享下An ...
- haskell模块(modules)
装载模块 Haskell 中的模块是含有一组相关的函数,类型和类型类的组合.而 Haskell 进程的本质便是从主模块中引用其它模块并调用其中的函数来执行操作.这样可以把代码分成多块,只要一个模块足够 ...
- java学习面向对象之final关键字
之前我们讲过继承的相关知识了,继承就是子类继承父类的属性和方法并且还可以覆盖父类的方法.但是这样有一个缺陷是什么呢,就是当我们一个类当中涉及一些封装的核心的东西或者对整个系统非常关键的方法或者类的时候 ...
- maven配置默认jdk版本
在maven的默认配置中,对于jdk的配置是1.4版本,那么创建/导入maven工程过程中,工程中未指定jdk版本. 对工程进行maven的update,就会出现工程依赖的JRE System Lib ...