SpringMVC:数据处理
处理提交数据
1.提交的域名称和处理方法的参数名一致
提交数据:http://localhost:8080/hello?name=lucycia
处理方法:
@Controller
public class ModelTest2 {
@RequestMapping("/hello")
public String hello(String name) {
System.out.println(name);
return "test";
}
}
2.提交的域名称和处理方法的参数名不一致
提交数据:http://localhost:8080/hello2?username=lucycia
处理方法:
@Controller
public class ModelTest2 {
@RequestMapping("/hello")
public String hello(String name) {
System.out.println(name);
return "test";
}
@RequestMapping("/hello2")
public String hello2(@RequestParam("username") String name) {
System.out.println(name);
return "test";
}
}
3.提交的是一个对象
实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private int age;
}
提交数据:http://localhost:8080/user/t2?id=1&name=lucycia&age=3
处理方法:
/*
* 1.接收前端用户传递的参数,判断参数的名字,假设名字直接在方法上,可以直接使用
* 2.假设传递的是一个对象User,匹配User对象中的字段名,如果名字一致则OK,否则匹配不到
* */
//前端接收一个对象:id,name,age
@GetMapping("t2")
public String test2(User user) {
System.out.println(user);
return "test";
}
说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null
返回给前端数据:
第二种:通过ModelMap
@GetMapping("t3")
public String test3(String name, ModelMap map) {
//相当于req.setAttribute("name",name)
map.addAttribute("name", name);
return "test";
}
第三种:通过Model
//localhost:8080/user/t1?name=xxx
@GetMapping("/t1")
public String test1(String name, Model model) {
//1.接收前端参数
System.out.println("接收到前端的参数:" + name);
//2.将返回的结果传递给前端
model.addAttribute("msg", name);
//3.视图交转
return "test";
}