下面是关于“SpringMVC前端和后端数据交互总结”的攻略:
在SpringMVC中,前端和后端数据交互一般有两种方式:表单提交和AJAX请求。
表单提交是一种比较常见的方式。前端页面通过form表单向后端发送请求,后端接收到请求后会对表单数据进行处理,然后将处理后的结果返回给前端。
以下是一个简单的表单提交示例:
<form method="post" action="/adduser">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
在上面的示例中,前端页面会向后端的/adduser
路径发送POST请求,并且提交了两个数据,分别是username
和password
。后端可以通过@PostMapping("/adduser")
注解来接收该请求,并对表单数据进行处理。
AJAX请求是一种不用刷新页面就能向后端发送请求并接收响应的方式。AJAX可以通过$.ajax()
或其他封装好的函数来向后端发送请求,也可以通过$.ajaxSetup()
来设置默认的请求参数。
以下是一个简单的AJAX请求示例:
$.ajax({
type: "POST",
url: "/adduser",
data: {
username: "张三",
password: "123456"
},
success: function(result) {
console.log(result);
}
});
在上面的示例中,前端页面会向后端的/adduser
路径发送POST请求,并且提交了两个数据,分别是username
和password
。后端可以通过@PostMapping("/adduser")
注解来接收该请求,并对表单数据进行处理。请求成功后,会将后端返回的响应数据打印在控制台上。
假设有一个简单的用户管理系统,前端页面有一个表单用于添加用户。在表单中填写用户名和密码后,点击提交按钮,将表单数据提交到后端进行处理。
HTML代码:
<form method="post" action="/adduser">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
后端接收请求的Controller:
@PostMapping("/adduser")
@ResponseBody
public String addUser(@RequestParam("username") String username, @RequestParam("password") String password) {
// 进行用户添加操作
return "success";
}
在上面的代码中,后端接收到前端提交的请求后,会将表单中的username
和password
保存到相应的变量中,然后进行用户添加操作。最后,返回结果字符串"success"
到前端。
假设有一个简单的商品列表页面,通过AJAX请求向后端获取商品数据,并将数据显示在页面上。
HTML代码:
<ul class="product-list"></ul>
JavaScript代码:
$.ajax({
type: "GET",
url: "/getproducts",
dataType: "json",
success: function(result) {
var productList = $(".product-list");
for (var i = 0; i < result.length; i++) {
var product = result[i];
var html = "<li>" + product.name + ":" + product.price + "</li>";
productList.append(html);
}
}
});
后端接收请求的Controller:
@GetMapping("/getproducts")
@ResponseBody
public List<Product> getProducts() {
// 查询商品数据
List<Product> products = productService.getProducts();
return products;
}
在上面的代码中,前端通过AJAX向后端请求商品数据,后端查询数据库获取商品数据,并将数据返回给前端。前端接收到后端返回的数据后,将数据动态显示在页面上。
本文链接:http://task.lmcjl.com/news/8142.html