在我的Spring应用程序中,我是这样做的...
我的JSP表单点击超链接后将被发送...
<form:form action="user" modelAttribute="NAME">
<a href="href_form1" onclick="onClick_Save()" class="save">Save</a>
</fomr:form>
<script>
function onClick_Save() {
$("#NAME").attr("action", $('.save').attr("href"));
$("#NAME").submit();
});
</script>
在我的控制器类中,我编写了一个方法。
@RequestMapping(value = "href_form1", method = RequestMethod.POST)
public @ResponseBody String href_form1(UserForm userForm,Model model)throws Exception {
//Database code here.
model.addAttribute("NAME", userForm);
return "User Updated";
}
编辑1:
WARNING: Request method 'GET' not supported
我遇到了错误页面。
HTTP Status 405 - Request method 'GET' not supported
编辑:修改后的代码如下所示
<script>
$(function() {
$('.save').on("click",function(e) {
e.preventDefault();
$("#NAME").attr("action", $(this).attr("href")).attr("method","POST");
$("#NAME").submit();
});
});
</script>
但是我的表单无法到达我的控制器方法。 我的代码有什么问题吗?我还尝试在表单标签中使用了method="POST"。
e
而不是event
是不兼容的。如果e
上没有定义preventDefault()(就像许多旧浏览器中一样),那么你将会遇到未知方法错误。在JavaScript中更改表单属性是可怕的做法,完全违反了可读性。你已经使用类属性分配了一个特定的操作,而不是建议使用新的id(你知道类和id之间的区别吗?)。我很难相信你一直以这种方式编程,就像你的个人资料所说的那样。 - AmbrosiaDevelopments