基础类型
原始类型:id必须要传,否则报错。
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(int id) {}
包装类型:id可以不传,后台接受到null。
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(Integer id) {}
list&set
简单类型
前台
form表单
<form action=\"${ctx}/test/test\" method=\"post\">
<input type=\"text\" name=\"ids\">
<input type=\"text\" name=\"ids\">
<input type=\"text\" name=\"ids\">
<input type=\"submit\">
</form>
ajax
var data = [];
data.push(1);
data.push(2);
data.push(3);
$.ajax({
url: ctx + \"/test/test\",
traditional:true,//必要
data: {ids: data},
success: function (result) {
alert(result);
}
})
后台
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(@RequestParam List<Integer>ids) {}
复杂类型
如list<User>users:(略)同json格式对象
数组
前台
form表单
<form action=\"${ctx}/test/test\" method=\"post\">
<input type=\"text\" name=\"ids\">
<input type=\"text\" name=\"ids\">
<input type=\"text\" name=\"ids\">
<input type=\"submit\">
</form>
ajax
var data = [];
data.push(1);
data.push(2);
data.push(3);
$.ajax({
url: ctx + \"/test/test\",
traditional:true,//必要
data: {ids: data},
success: function (result) {
alert(result);
}
})
后台
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(Integer[]ids) {
}
map
前台
form
<form action=\"${ctx}/test/test\" method=\"post\">
<input type=\"text\" name=\"name\">
<input type=\"text\" name=\"sex\">
<input type=\"submit\">
</form>
ajax
var data = {name:\"zhangsan\",sex:\"man\"};
$.ajax({
url: ctx + \"/test/test\",
data:data,
success: function (result) {
alert(result);
}
});
后台
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(@RequestParam Map<String,String> params) {}
pojo简单属性
前台
form
<form action=\"${ctx}/test/test\" method=\"post\">
<input type=\"text\" name=\"name\">
<input type=\"text\" name=\"sex\">
<input type=\"submit\">
</form>
ajax
var data = {name:\"zhangsan\",sex:\"man\"};
$.ajax({
url: ctx + \"/test/test\",
data:data,
success: function (result) {
alert(result);
}
});
后台
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(User user) {}
public class User{
private String name;
private String sex;
//get and set ...
}
pojo包含list
前台
form
<form action=\"${ctx}/test/test\" method=\"post\">
<input type=\"text\" name=\"userName\" value=\"zhangsan\">
<input type=\"text\" name=\"sex\" value=\"123\">
<input type=\"text\" name=\"posts[0].code\" value=\"232\"/>
<input type=\"text\" name=\"posts[0].name\" value=\"ad\"/>
<input type=\"text\" name=\"posts[1].code\" value=\"ad\"/>
<input type=\"text\" name=\"posts[1].name\" value=\"232\"/>
<input type=\"submit\">
</form>
ajax
var user={userName:\"zhangsan\",password:\"123\"};
user[\'posts[0].name\']=\"ada\";
user[\'posts[0].code\']=\"ada\";
user[\'posts[1].name\']=\"ad\";
user[\'posts[1].code\']=\"ad2323a\";
$.ajax({
url: ctx + \"/test/test\",
type:\"post\",
contentType: \"application/x-www-form-urlencoded\",
data:user,
success: function (result) {
alert(result);
}
});
后台
public class User{
private String name;
private String sex;
private List<Post> posts;
//get and set ...
}
public class Post {
private String code;
private String name;
//get and set ...
}
@RequestMapping(\"/test\")
@ResponseBody
public ResponseData test(User user) {}
date类型
使用注解方式
绑定单个方法
对于传递参数为Date类型,可以在参数前添加@DateTimeFormat注解。如下:
@RequestMapping(\"/test\")
public void test(@DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\") Date date){}
如果传递过来的是对象,可以在对象属性上添加注解。
@RequestMapping(\"/test\")
public void test(Person person){}
Public class Person{
@DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")
Private Date date;
Private String name;
}
绑定整个controller的所有方法:
@Controller
public class FormController {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-MM-dd\");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
}
@Controller
public class FormController {
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.addCustomFormatter(new DateFormatter(\"yyyy-MM-dd\"));
}
}
使用PropertyEditor方式
使用ConversionService方式
参考:
https://www.2cto.com/kf/201501/374062.html
https://docs.spring.io/spring/docs/current/spring- work-reference/web.html#mvc-ann-initbinder
枚举类型
mvc配置文件添加:
<!--枚举类型转化器-->
<bean id=\"formattingConversionService\"
class=\"org.spring work.format.support.FormattingConversionServiceFactoryBean\">
<property name=\"converters\">
<set>
<bean class=\"org.spring work.core.convert.support.StringToEnumConverterFactory\"/>
</set>
</property>
</bean>
参考:
json格式对象
后台
@RequestMapping(value = \"introductionData.do\", method = {RequestMethod.POST})
@ResponseBody
public RestResult introductionData(@RequestBody SignData signData) {
}
public class SignData {
private ApplicationInformation applicationInformation;
private ApplyUserInformation applyUserInformation;
private StudentInformation studentInformation;
private List<VolunteerItem> volunteerItems;
private ResidencePermit residencePermit;
private List<Family> families;
//get and set ...
}
前台
var data = {}
var applyUserInformation = {
\"applyName\": APPLYNAME,
\"applyCardType\": \"0\",
\"applyCardID\": APPLYIDCARD,
\"applyMobile\": APPLYMOBILE
};
var applicationInformation = {
\"live_address\": nowaddress,
\"addressJZArea\": addressJZArea,
\"schoolLevel\": schoolLevel,
\"schoolType\": schoolType,
\"applyName\": APPLYNAME,
\"contacts\": contacts,
\"contactNumber\": contactNumber
};
var studentInformation = {
\"cardType\": cardType,
\"cardID\": cardID,
\"studentName\": studentName,
\"studentType\": studentType,
\"studentType1\": studentSpecialCase,
\"isDisability\": \"0\",
\"studentCategory\": \"0\",
\"birthday\":birthday,
\"graduationschool\":SchoolName,
\"graduationclass\":classNameinfo,
\"applyName\": APPLYNAME
};
data[\"applyUserInformation\"] = applyUserInformation;
data[\"applicationInformation\"] = applicationInformation;
data[\"studentInformation\"] = studentInformation;
$.ajax({
url: ctx + \'/overseasData.do\',
type: \"post\",
data: JSON.stringify(data),
contentType: \"application/json;charset=utf-8\",
success: function (result) {}
})
继续阅读与本文标签相同的文章
下一篇 :
NumPy入门教程
-
再有人问你ThreadLocal,就把这篇文章扔给他
2026-05-19栏目: 教程
-
RocketMQ消费失败消息深入分析(consumer,broker的具体处理逻辑)
2026-05-19栏目: 教程
-
RocketMQ消费失败重试机制分析
2026-05-19栏目: 教程
-
基于SLF4J MDC机制实现日志的链路追踪
2026-05-19栏目: 教程
-
java泛型中T、E、K、V、?等含义
2026-05-19栏目: 教程
