gpt4 book ai didi

ajax - Spring 和 Ajax

转载 作者:行者123 更新时间:2023-12-01 11:50:36 24 4
gpt4 key购买 nike

我可以将 spring 表单标签库与 Ajax 结合使用吗?我无法在 Controller 内检索表单输入参数。它们始终为 null

其实有一个逻辑就是表单永远不会提交。但随后我只能将字符串发送到我的 Controller ,而不是对象,就像映射到 Spring commandBean 的表单提交一样。

表单接受 commandBean

<form:form method="POST" commandName="clinicBean">
Clinic Name: <form:input path="name" type="text" /><br/>
Clinic Address: <form:input path="address" type="text"/><br/>
<input type="button" value="Create Clinic" onclick="clinicAjax()"/>
</form:form>

Ajax 函数调用 Spring Controller

function clinicAjax(){
alert('Inside Clinic Ajax Method');
$.ajax({
url: 'clinicAjax',
type: 'POST',
success: alert('Ajax Successful')
});
}

Spring Controller 方法:

@RequestMapping(value="clinicAjax",method=RequestMethod.POST)


public @ResponseBody String createClinic(@ModelAttribute("clinicBean") Clinic clinic){
System.out.println("Ajax call successful");
System.out.println(clinic);
System.out.println(clinic.getName());
System.out.println(clinic.getAddress());
return "SUCCESS";
}

它总是在 System.out.println() 语句中得到 null

最佳答案

问题是您没有在任何地方序列化您的表单,所以它没有被发送到服务器。

将您的 javascript 代码更改为:

function clinicAjax(){
alert('Inside Clinic Ajax Method');
$.ajax({
url: 'clinicAjax',
data: yourFormElement.serialize(); /* i.e. $('#formId').serialize(); */
type: 'POST',
success: alert('Ajax Successful')
});
}

yourFormElement 替换为表示您的表单的 jQuery 对象,它应该可以工作。

关于ajax - Spring 和 Ajax ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611843/

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