get请求与post请求发送普通参数
项目结构
ServletConfig
@Configuration
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[0];
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
SpringMvcConfig
@Configuration
@ComponentScan("com.rikka.controller")
public class SpringMvcConfig {
}
UserController
@Controller
public class UserController {
@RequestMapping("/userParam")
@ResponseBody
public String userParam(String name,int age){
return "user param name="+ name + " age= "+age;
}
}
这里Get与Post请求都可以接收
成功运行
请求参数名与形参名不同
当请求参数名与形参名不同时无法接收,可以使用@RequestParam解决
@RequestMapping("/userParamDif")
@ResponseBody
public String userParamDifName(@RequestParam("name") String userName ,@RequestParam("age") int userAge){
return "user param userName="+ userName + " userAge= "+userAge;
}
成功运行
实体参数
@RequestMapping("/userParamPojo")
@ResponseBody
public String userParamPojo(User user){
return "user param user="+user;
}
运行后,成功显示
p.s:
这里实体类中属性名与请求参数名需要一致,才能接收到
嵌套实体类
数组参数
@RequestMapping("/userParamArray")
@ResponseBody
public String userParamArray(String[] likes){
return "user param likes="+ Arrays.toString(likes);
}
名称依然要保持一致
集合参数
@RequestMapping("/userParamList")
@ResponseBody
public String userParamList(@RequestParam List<String> likes){
return "user param likes="+ likes;
}
中文乱码处理:
在ServletConfig中添加字符过滤器
@Override
protected Filter[] getServletFilters(){
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
JSON参数
导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
SpringMvcConfig添加@EnableWebMvc注解,使能将json数据转化为对象的功能
JSON数组
使用@RequestBody注解
@RequestMapping("/userJsonList")
@ResponseBody
public String jsonList(@RequestBody List<String> likes){
System.out.println("list:"+likes);
return "user json list="+likes;
}
运行成功
JSON对象
@RequestMapping("/userJsonPojo")
@ResponseBody
public String jsonPojo(@RequestBody User user){
return "user json pojo user="+ user;
}
JSON数组
@RequestMapping("/userJsonListPojo")
@ResponseBody
public String jsonListPojo(@RequestBody List<User> users){
return "user json pojo list user="+ users;
}
@RequestMapping("/userJsonListPojo")
@ResponseBody
public String jsonListPojo(@RequestBody List<User> users){
return "user json pojo list user="+ users;
}
日期参数
日期形式可以直接传递
@RequestMapping("/dateParam")
@ResponseBody
public String dataParam(Date date){
return "date: "+date;
}
类型转换器
Converter接口
请求参数年龄数据String->Integer
日期转换String->Date