目录
1.请求映射路径
2.请求参数
2.1参数传递
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/save")
@ResponseBody //表示返回值就是响应体
public String save(String name, int age) {
System.out.println("普通参数传递name-->" + name);
System.out.println("普通参数传递age-->" + age);
return "{'info':'springMVC'}";
}
}
get请求
post请求
2.2中文乱码处理
package com.config;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import javax.servlet.Filter;
//简化开发
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
protected String[] getServletMappings() {
return new String[]{"/"};
}
//中文乱码问题:过滤器,只能处理post请求
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
}
2.4五种类型参数传递
普通参数(解决请求参数名与形参名不同)
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/save")
@ResponseBody //表示返回值就是响应体
public String save(@RequestParam("username") String name, int age) {
System.out.println("普通参数传递name-->" + name);
System.out.println("普通参数传递age-->" + age);
return "{'info':'springMVC'}";
}
}
pojo参数
public class User {
private int id;
private String name;
}
@RequestMapping("/pojo")
@ResponseBody
public String pojo(User user){
System.out.println(user.getId()+"---"+user.getName());
return "{'info':'springMVC'}";
}
嵌套pojo参数
public class User {
private int id;
private String name;
private Address address;
}
public class Address {
private String city;
private String country;
}
@RequestMapping("/pojo")
@ResponseBody
public String pojo(User user){
System.out.println(user);
return "{'info':'springMVC'}";
}
数组参数
@RequestMapping("/arr")
@ResponseBody
public String arr(String[] likes) {
System.out.println(Arrays.toString(likes));
return "{'info':'springMVC'}";
}
集合参数
@RequestMapping("/list")
@ResponseBody
public String list(@RequestParam List<String> likes) {
System.out.println(likes);
return "{'info':'springMVC'}";
}
3 json数据传递参数
3.1 json数组
1.导坐标
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
2.改核心配置
//@Configuration
@ComponentScan("com.controller")
@EnableWebMvc //开启json数据转对象的功能
public class SpringMvcConfig {
}
3.参数前面加@RequestBody
@RequestMapping("/json")
@ResponseBody
public String json(@RequestBody List<String> likes) {//数据在请求体中
System.out.println(likes);
return "{'info':'springMVC'}";
}
4.发送请求
3.2 json对象 (pojo)
@RequestMapping("/jsonPojo")
@ResponseBody
public String jsonPojo(@RequestBody User user) {//数据在请求体中
System.out.println(user);
return "{'info':'springMVC'}";
}
3.3 json数组(pojo)
@RequestMapping("/jsonPojoList")
@ResponseBody
public String jsonPojoList(@RequestBody List<User> users) {//数据在请求体中
System.out.println(users);
return "{'info':'springMVC'}";
}
@RequestBody与@RequestParam区别
4.日期类型参数传递
@RequestMapping("/data")
@ResponseBody
public String data(Date date1,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date date2,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date date3) {
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
return "{'info':'springMVC'}";
}
5.响应json数据
5.1页面跳转
@RequestMapping("/jumpPage")
public String jumpPage() {
System.out.println("页面跳转");
return "page.jsp";
}
5.2 返回字符串
//响应文本数据
@RequestMapping("/text")
@ResponseBody
public String text() {
System.out.println("文本数据");
return "response text";
}
5.3 响应pojo对象
//响应pojo对象
@RequestMapping("/pojo")
@ResponseBody
public User pojo() {
System.out.println("pojo对象");
User user = new User();
user.setId(10);
user.setName("zhangsan");
Address address = new Address();
address.setCity("wuhan");
address.setCountry("China");
user.setAddress(address);
return user;
}
5.4响应pojo对象集合
//响应pojo对象集合
@RequestMapping("/pojoList")
@ResponseBody
public List<User> pojoList() {
System.out.println("pojo对象");
User user1 = new User();
user1.setId(10);
user1.setName("zhangsan");
User user2 = new User();
user2.setId(20);
user2.setName("lisi");
List<User> list=new ArrayList<User>();
list.add(user1);
list.add(user2);
return list;
}
5.5 @ResponseBody原理