如何在Spring MVC中将用户表单数据发送到服务器
问题内容:
我有这样的登录表单:
<form:form modelAttribute="user" method="post" enctype="application/x-www-form-urlencoded">
<form:input path="userEmailId" />
<form:password path="userPassword />
<input type="submit" value="sign up" />
</form:form>
这是我user.java
的二传手
public String getUserEmailId() {
return userEmailId;
}
public void setUserEmailId(String userEmailId) {
this.userEmailId = userEmailId;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
单击注册后,我希望此值首先转换为json,然后通过post方法将此值发送到服务器。我想使用RESTful WEB
服务来实现这一目标。有什么想法吗?
问题答案:
您可以用于JSON
将表单序列化为json object
,然后用于AJAX
向Web服务发送发布请求:
$(function() {
$('#formId').submit(function(event) {
event.preventDefault(); // prevent this form from being submited
var userJson = JSON.stringify(jQuery('#formId').serializeArray());
$.ajax({
type: "POST",
url: "/Path/To/Your/Web/Service",
data: userJson,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
alert(data);//handle it in a proper way
},
failure: function(errMsg) {
alert(errMsg);//handle it in a proper way
}
});
return false;
});
});
然后,在您的WebService上,您应该有一个方法可以处理此发布请求:
@Controller
@RequestMapping("/path/to/your/web/service")
public class WebServiceController{
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<String> handleLogin(@RequestBody User user){
//user contains data passed from UI form. Check it against your repository(database ? )
}
}
请注意,该示例仅是一个简单的示例,并且未考虑与安全性相关的任何方面。