昨天学校项目里要做个功能,是要在前端定义一条折线端,然后提交到后台存进数据库里。
折线段的话其实就是不定数量的一些点坐标,第一反应就是用Form提交一个Point 的List,后台也用List接收,然而却发现SpringMVC 不能直接接收List,需要做一点变动。
学校的代码不好贴出来,我单独写个例子演示一下
前端页面这样写
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>Title</title>
</head>
<form action="test" method="post" enctype="application/x-www-form-urlencoded">
<table>
<td><input type="text" name="points[0].x"/></td>
<td><input type="text" name="points[0].y"/></td>
<td><input type="text" name="points[1].x"/></td>
<td><input type="text" name="points[1].y"/></td>
<td><input type="text" name="points[2].x"/></td>
<td><input type="text" name="points[2].y"/></td>
<input type="submit" value="Submit">
</table>
</form>
</body>
</html>
public class Point {
private Integer x;
private Integer y;
public Integer getX() {
return x;
public void setX(Integer x) {
this.x = x;
public Integer getY() {
return y;
public void setY(Integer y) {
this.y = y;
实体类集合封装类,这里是个技巧了,SpringMVC不能用List接收,但可以用包装了List成员的对象接收
public class PointModel {
private List<Point> points;
public List<Point> getPoints() {
return points;
public void setPoints(List<Point> points) {
this.points = points;
控制器,就跟平常没啥两样了
@Controller
public class PointController {
@PostMapping("/test")
@ResponseBody
public String testPost(PointModel pointModel){
System.out.println(JSON.toJSONString(pointModel));
return JSON.toJSONString(pointModel);
@GetMapping("/test")
public String testGet(Model model){
return "test";
我们先用PostMan 测试一下后台好不好用
可以看到提交成功了,form-data 和x-www-form-urlencoded 都是可以的
我们再用页面POST一下试试
返回的结果与PostMan一致,这里我浏览器上装了JSON-handle,所以是这种格式
下次需要提交数组类型的数据就可以这么做啦,做个笔记。
返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。