在Spring MVC 4.3.9中,无法更改表单标签(方法get)中的动作(参数)属性。

问题描述 投票:0回答:1

我想分享一些SpringMVC表单动作不可更改的问题解决方案,我在网上包括这里都找不到。(可能是重复的)但我在StackOverflow几乎是个新生,所以我只是在这里自问自答,马上就能找到答案。/ 我曾试过在GitHub issue上公开分享解决方案,也不能很好的使用。/请求原谅...


我在Spring MVC 4.3.9中发现了一个类似bug的东西。当我试图在javascript函数中改变表单标签的动作属性(方法get)时,在浏览器(我使用Firefox)地址窗口中的URL映射总是被输入为动作+表单标签中的输入标签的名称。
<form action="mappingInControllerToSend" method="get" id="theForm">
  <input type="text" name="test1"/>
</form>
<button onclick="formActionChange()"/>
<!-- blah blah -->
<script>
  function formActionChange(){
   var theForm = document.getElementById("theForm");
   var newParam = "test2";
   theForm.action = "mappingInControllerToSend?" + newParam;
  }
</script>

<!-- the default value of the 'method' attribute in form tag is "get",
so if you don't write the method attribute at all,
then you are using get method, so getting this same wrong result. -->

在这种情况下,按照书上的规定,我应该连接到Controller(参数为test2)中的 "mappingInControllerToSend?test2"。

但我总是连接到Controller(带参数test1)中的 "mappingInControllerToSend?test1"。

javascript spring forms model-view-controller action
1个回答
0
投票

** 解决方法 ** => 你应该把表单标签的方法,表单 "get "改成 "post"=> 当方法是 "post "时,现在转到Controller中的 "mappingInControllerToSend?test1",如编码。

/ P.S. --我不知道这是不是一个bug。(如果这是Spring MVC中计划中的功能,我很抱歉。) --但我至少希望这对陷入同样问题的人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.