【SpringMVC接收参数 具体示例#yyds干货盘点#】丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述SpringMVC接收参数 具体示例#yyds干货盘点#相关的知识,希望能为你提供帮助。
实体类
@Data
public class Dept {
private Integer deptno;
private String dname;
private String loc;
}
后台控制器
@Controller
@RequestMapping("/dept")
public class DeptController {
@RequestMapping("/add")
void add(HttpServletRequest request){
try {
ServletInputStream is = request.getInputStream();
String result = new BufferedReader(new InputStreamReader(is))
.lines().collect(Collectors.joining(System.lineSeparator()));
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}@PostMapping(value = "https://www.songbingjia.com/add1")
public ModelAndView add1(HttpServletRequest request) {
String deptno = request.getParameter("deptno");
String dname = request.getParameter("dname");
String loc = request.getParameter("loc");
Dept dept = new Dept(Integer.parseInt(deptno), dname, loc);
return new ModelAndView("/res", "res", dept);
}@PostMapping("/add2")
public ModelAndView add2(Integer deptno, String dname, String loc) {//前台页面传递过来的数据会自动实例化
Dept dept = new Dept(deptno, dname, loc);
return new ModelAndView("/res", "res", dept);
}@RequestMapping("/add3")
public ModelAndView add3(Dept dept) {//前台页面传递过来的数据会自动实例化
System.out.println(dept);
return new ModelAndView("/res", "res", dept);
}@RequestMapping("add4")
public void add4(Dept dept, HttpServletResponse response) throws IOException {// 变量的名称无所谓,不是必须得和前台页面一致,只要类型不错就行了
response.setContentType("application/json");
PrintWriter out = response.getWriter();
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(dept);
out.write(json);
}@ResponseBody
@RequestMapping("add5")
public Dept add5(Dept dept) throws IOException {// 变量的名称无所谓,不是必须得和前台页面一致,只要类型不错就行了
return dept;
}}
普通表单 示例一:后台通过HttpServletRequest获取
<
form action="dept/add1" method="post">
<
input type="text" name="deptno">
<
input type="text" name="dname">
<
input type="text" name="loc">
<
input type="submit" value="https://www.songbingjia.com/android/添加部门">
<
/form>
示例二:后台通过具体的属性获取
<
form action="dept/add2" method="post">
<
input type="text" name="deptno">
<
input type="text" name="dname">
<
input type="text" name="loc">
<
input type="submit" value="https://www.songbingjia.com/android/添加部门">
<
/form>
示例三:后台通过具体的对象获取
<
form action="dept/add3" method="post">
<
input type="text" name="deptno" id="deptno">
<
input type="text" name="dname" id="dname">
<
input type="text" name="loc" id="loc">
<
input type="submit" value="https://www.songbingjia.com/android/添加部门">
<
/form>
示例四:后台通过具体的属性获取
<
form>
<
input type="text" name="deptno">
<
input type="text" name="dname">
<
input type="text" name="loc">
<
input type="button" value="https://www.songbingjia.com/android/添加部门" onclick="add22();
">
<
/form>
<
script>
function add22() {
let form = document.forms[0];
form.action = "dept/add2";
form.method = "POST";
form.submit();
}
<
/script>
前台以JSON方式传递数据 后台通过具体的对象获取
<
form action="dept/add3" method="post">
<
input type="text" name="deptno" id="deptno1">
<
input type="text" name="dname" id="dname1">
<
input type="text" name="loc" id="loc1">
<
button id="addBtn">
添加部门<
/button>
<
/form>
<
script>
$(function () {
$("#addBtn").click(function () {
let deptno = $("#deptno1").val();
let dname = $("#dname1").val();
let loc = $("#loc1").val();
let dept = {deptno: deptno, dname: dname, loc: loc};
$.ajax({
url: "dept/add4",// 注:add3、add4、add5都可以。
type: "POST",
data: dept,
success: function (data) {
alert(data.deptno + "" + data.dname + "" + data.loc);
}
});
});
})
<
/script>
指定contentType 网页通过JSON形式向后台传递数据
<
form id="deptForm2">
<
input type="text" name="deptno" id="deptno3">
<
input type="text" name="dname" id="dname3">
<
input type="text" name="loc" id="loc3">
<
input type="button" value="https://www.songbingjia.com/android/添加部门" onclick="add32();
">
<
/form>
<
script>
function add32() {
let deptno = $("#deptno3").val();
let dname = $("#dname3").val();
let loc = $("#loc3").val();
let dept = {deptno: deptno, dname: dname, loc: loc};
$.ajax({
url: "dept/add1",
type: "POST",
data: dept,
// contentType: "application/json;
charset=UTF-8",
success: function (data) {
alert(data.deptno + "" + data.dname + "" + data.loc);
}
});
};
<
/script>
网页通过key/value形式向后台传递数据
<
form id="deptForm1">
<
input type="text" name="deptno">
<
input type="text" name="dname">
<
input type="text" name="loc">
<
input type="button" value="https://www.songbingjia.com/android/添加部门" onclick="add31();
">
<
/form>
<
script>
function add31() {
// let p = $("#deptForm").serialize();
// alert(p)//deptno=32&
dname=23&
loc=32
$.ajax({
type: "post",
dataType: "json", //预期服务器端返回的数据的类型
url: "dept/add2",// add1 - add5都能接收到数据
// contentType: "application/x-www-form-urlencoded",//前端向服务器传递的数据的类型
data: $("#deptForm1").serialize(),
success: function (data) {
console.info(data);
}
})
}
<
/script>
注:
- contentType: "
application/x-www-form-urlencoded"
- 如果不指定contentType,后台会将接收到的value值赋给Controller方法的对象参数(或封装后赋给Controller方法的对象参数):
- 如果指定contentType,后台只能将接收到的value值赋给Controller方法的对应参数
- contentType: "
application/json;
charset=UTF-8"
- 如果不指定contentType,1-5都行
- 如果指定contentType,只能通过
add
获取参数的值 - 若控制器方法对象参数前面加
@RequestBody
或@RequestParam
,会报xhr
。
推荐阅读
- oeasy教您玩转vim - 70 - # 折叠细节
- JAVA关于列表查询参数校验的问题
- Linux是什么系统(为什么要学习Linux?)
- ffmpeg图片缩放
- 什么是linux?Linux需要学习什么语言?
- 美国服务器和香港服务器有什么区别()
- 白话 Linux 容器资源的隔离限制原理
- 香港服务器跟台湾服务器有什么区别()
- linux之strings命令