gpt4 book ai didi

spring - POST 方法读取查询参数而不是表单字段

转载 作者:行者123 更新时间:2023-11-28 23:47:58 25 4
gpt4 key购买 nike

我有 jsp,它有方法 action="POST"。最初,此 jsp 通过 Controller (Spring) 在 URL 中使用查询字符串 param1=paramValue1 进行调用。 (例如/thisJsp.jsp?param1=paramValue1)。 Spring在这里使用了GET方法,所以读取了查询参数。

稍后我会通过 javascript 设置一个隐藏的表单输入字段 $('#param1').val(paramValue2).

我的问题是回到 Controller,它注册方法操作是 POST,但是当我执行 request.getParameter("param1") 时,它总是返回 paramValue1。

使用 Fiddler,我看到 param1=paramValue2 已注册,这意味着它已在 submit() 上设置。

我错过了什么?

我正在使用 Tomcat 服务器和 Spring 2.0.7

最佳答案

你能看到 POST 的 URL 吗?您的表单可能会或可能不会设置其“操作”属性。如果未设置,则它将 POST 到与当前页面相同的 URL。这可能会导致您 POST 到查询字符串中带有 ?param1=paramValue1 的 URL,但随后在帖子正文中也有 param1=paramValue2 的情况。您可以更改表单,以便将其操作设置为没有查询字符串的“/thisJsp.jsp”,这可能会解决您的问题。

一般来说,同一个命名参数在请求中多次包含是有效的,无论是 GET 还是 POST。您也可以尝试在 Controller 中调用 request.getParameterValues("param1"),这将返回一个字符串数组。这将是一个很好的测试,看看您是否确实传递了 param1 的两个值。

关于spring - POST 方法读取查询参数而不是表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com