所谓的SpringMVC级联获取前台数据,是指后台可以通过对象给其中的对象属性下的某个属性赋值。
如下所示,player类下有一个team对象属性:
我们可以在前端传递参数时,我们只需要使用Player来接收参数,就可以同时给player和team的某些属性赋值。
测试如下:
页面部分
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="player/getParams">
球员姓名:<input type="text" name="pname" id="pname" /><br>
所属球队:<input type="text" name="team.tname" id="tname" /><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
注意点:
如果player类中Team属性名称为tm,则此处的name=”tm.tname”
如果player类中Team属性名称为team,而Team类中Tname为tn,则name=”team.tn”
后台Controller
package com.java.web;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.java.bean.Player;
import com.java.service.IPlayerService;
@Controller
@RequestMapping("player")
public class PlayerController {
@Autowired
IPlayerService pService;
//获取前端参数
@RequestMapping("getParams")
public String getParams(Player player){
System.out.println("player==="+player);
System.out.println("pname==="+player.getPname());
System.out.println("tname==="+player.getTeam());
return null;
}
}
运行结果:
当输入:
打印:
如果使用的是ajax时
页面参数对应如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script type="text/javascript">
function ajaxSubmit(){
var pname=$("#pname").val();
var tname=$("#tname").val();
alert("panme="+pname+",tname="+tname);
$.ajax({
url:"player/getParams",
data:{"pname":pname,"team.tname":tname},
type:"post",
success:function(data){
alert(111);
}
});
}
</script>
<body>
<form action="">
球员姓名:<input type="text" name="pname" id="pname" /><br>
所属球队:<input type="text" name="tname" id="tname" /><br>
<input type="button" value="提交button" onclick="ajaxSubmit()" /><br>
</form>
</body>
</html>