Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何配置Struts 2.3以同时接受GET和POST参数?

如何配置Struts 2.3以同时接受GET和POST参数?
EN

Stack Overflow用户
提问于 2014-08-03 22:33:32
回答 2查看 1.2K关注 0票数 0

我们已经从2.0迁移到2.3。在Struts 2.0中,我们能够发送包含post和get参数的AJAX请求。但是在迁移到Struts 2.3之后,都无法完成这样的请求。

下面是使用Prototype.js发出的示例AJAX请求的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var url = '/security/userdetails.action?mode=edit&userid=5';
var params = Form.serialize(form);
new Ajax.Request(url,
        {
            parameters: params,
            onSuccess: function(trans) {
                console.debug('success', trans);
            },
            onFailure: function(trans) {
                console.debug('failure', trans);
            },
            onException:function(trans) {
                console.debug('exception', trans);
            }
        });

如您所见,上面的AJAX请求包含GET和POST请求。这在2.0中很好,但在2.3中,似乎验证了请求,并将请求转发到结果类型"input",但为此,我们没有配置JSP,最终得到的只是404 Not。

但是,如果我们将代码更改为下面的代码,它也可以在Struts 2.3中工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var url = '/security/userdetails.action?mode=edit';    // ------ The Changes are here
var params = Form.serialize(form);
params.userid = 5;  // ----- And here
new Ajax.Request(url,
        {
            parameters: params,
            onSuccess: function(trans) {
                console.debug('success', trans);
            },
            onFailure: function(trans) {
                console.debug('failure', trans);
            },
            onException:function(trans) {
                console.debug('exception', trans);
            }
        });

第一种方法有什么问题?Struts 2.3中是否有允许提出该请求的配置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-04 09:18:47

问题是:

userid在action类中被定义为一个整数,因此很明显,它的setter和getter也是用整数定义的。

但是这个userid既存在于url (作为查询字符串)中,也存在于post正文中--因此基本上是一个由两个字符串组成的数组。当struts试图从数组中解析整数时,它将得到数字格式异常->,这将导致无效的表单提交,从而重定向到"input“结果类型。

我没有看到struts在那件事上登了名,于是就偏离了实际的问题。

不过,谢谢你的意见。

票数 0
EN

Stack Overflow用户

发布于 2014-08-03 22:56:28

这取决于HttpServlet是如何工作的,以及Struts2用于从请求中检索参数的方法,以及在此过程中使用的方法GET/POST (而不是两者兼用)。Struts2使用request.getParameterMap()获取参数

请求参数是与请求一起发送的额外信息。对于HTTP,参数包含在查询字符串或已发布的表单数据中。

但是您使用的是http方法,参数应该是post数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25112923

复制
相关文章
post请求包含哪些参数(请求方式post和get)
1)、HTTP 协议是以 ASCII 码 传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。 2)、协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须 使用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。 3)、数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 php、python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。
全栈程序员站长
2022/07/29
3.8K0
POST请求和GET请求如何传递和接收解析参数
接口参数应该怎么传递是每个项目应该面对的问题,这跟编程语言无关,今天来总结一波常用的接口参数传递方式。
码农小胖哥
2020/10/10
26.9K0
POST请求和GET请求如何传递和接收解析参数
requestmethod post和get_post与get
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193294.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
1K0
GET 和 POST 区别
浏览器的get和post有什么区别?第1个从他们字面意思去理解这些,就是从网页上获取一个数据。然后这个获取数据是对服务器不会产生副作用的,术语就是数学上的 幂等即多次操作不产生影响(比如任何数乘1或者乘0,多次乘之后,都不会变化),那样多次操作也不会去产生副作用。那post那这个就是一个单词就是邮寄的意思,相当于是要本地的数据传到服务器,那这个操作就会对服务器的数据更新或者创建,就会造成一个影响,它是有副作用的,对应的就是不幂等。
叉叉敌
2020/08/25
7830
GET 和 POST 区别
Struts2.3的简单配置使用 原
一、下载Struts2,http://struts.apache.org/development/2.x/
用户2603479
2018/08/15
2820
Struts2.3的简单配置使用
                                                                            原
-GET和POST请求添加请求参数和请求头【TBK使用】
我们平常浏览各个网站时,不免有时候就需要填写一些信息,比如注册时,登录时,这些信息一般都是通过GET请求或者POST(敏感信息一般使用POST,数据隐藏,相对来说更安全)请求提交到后台,经过后台的一系列处理,再返回给前台结果,前台进行处理。
凯哥Java
2019/06/28
6.5K0
get和post的区别
get和post方法是Http请求中主要的两种方法,因为从网上找了很多get和post区别,千篇一律,并且描述不清,今天偶尔从W3cShool看到了自己认为比较正确的回答。            从制
李家酒馆酒保
2017/12/28
1.1K0
get和post的区别
get和post表单提交
GET的提交方式,用户输入结果会显示在地址栏,安全性不好,地址栏提交数据大小限制2K。
十月梦想
2018/08/29
9010
get和post表单提交
【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
韩曙亮
2023/03/29
16.6K0
GET和POST的区别
GET和POST只是HTTP协议中的两种请求方式,而HTTP协议是基于TCP/IP的应用层协议,无论是GET还是POST,用的都是同一个传输层协议,所以在传输上没有区别。
ppxai
2020/09/23
1.5K0
GET和POST的区别
经常在面试或笔试的时候,会被问到GET请求与POST请求有何区别,区别在哪里,什么时候用GET请求、什么时候用POST请求等等的问题。
wangmcn
2022/07/26
6370
GET和POST的区别
关于GET和POST请求
网上看了一篇关于这两种请求的区别,感觉和之前看到的不太一样。 大众版: 1. GET使用URL或Cookie传参。而POST将数据放在BODY中。 2. GET的URL会有长度上的限制,则POST的数据则可以非常大。 3. POST比GET安全,因为数据在地址栏上不可见。 分析: 对于第一个: GET和POST与数据如何传递没有关系      GET和POST是由HTTP协议定义的。在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个Method
小端
2018/04/16
1K0
GET和POST的区别
这是百度搜索答案TOP1,通过查阅官方资料。发现答案基本是错的,下面根据答案逐一分析:
暮雨
2019/10/15
6490
GET和POST的区别
超文本传输协议HTTP的设计目的是保证客户端与服务端之间的通信,HTTP协议的工作方式是客户端与服务端之间的请求响应,在客户端与服务端进行请求响应时最常用的两种方法就是GET与POST。
WindRunnerMax
2020/08/27
6880
get和post的区别
GET和POST是什么 基本概念 GET和POST是 HTTP协议中的两种发送请求的方法 HTTP是什么 HTTP是hypertext transfer protocol(超文本传输协议)的简写, 它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。 一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容 请求方式有:POST、GET、HEAD
是阿超
2021/10/15
7190
get和post的区别
get和post有什么区别,很多人首先能说出来的就是传参方式的不同,GET把参数包含在URL中,POST通过request body传递参数。
OECOM
2020/11/03
9130
GET和POST的区别
这是百度搜索答案TOP1,通过查阅官方资料。发现答案基本是错的,下面根据答案逐一分析:
测试小兵
2019/10/08
9320
GET和POST的区别
HTTP中get和post
​ GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。上述的所谓区别,只是浏览器厂家根据约定,做得限制而已
小小咸鱼YwY
2019/09/11
9340
浅谈web开发中的Get和Post方法get和post的区别
在http协议中,实际上有八个http方法。但在实际开发中,绝大多数情况我们只会用到两个方法,就是get和post。所以我们来稍微谈谈两种方法的区别,以及何时应该选取何种方法。
desperate633
2018/08/22
1.8K0
浅谈web开发中的Get和Post方法get和post的区别
点击加载更多

相似问题

如何配置struts操作以通过post获取参数?

12

如何创建同时接受POST和GET的RESTful处理程序?

11

如何同时使用GET和POST参数发出请求?

21

如何配置IIS以接受POST请求?

216

如何同时以GET和POST的方式传值?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文