我想分享一些SpringMVC表单动作不可更改的问题解决方案,我在网上包括这里都找不到。(可能是重复的)但我在StackOverflow几乎是个新生,所以我只是在这里自问自答,马上就能找到答案。/ 我曾试过在GitHub issue上公开分享解决方案,也不能很好的使用。/请求原谅...
<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"。
** 解决方法 ** => 你应该把表单标签的方法,表单 "get "改成 "post"=> 当方法是 "post "时,现在转到Controller中的 "mappingInControllerToSend?test1",如编码。
/ P.S. --我不知道这是不是一个bug。(如果这是Spring MVC中计划中的功能,我很抱歉。) --但我至少希望这对陷入同样问题的人有帮助。