一、处理提交数据
- 提交的域名称与controller处理方法的参数名称相同时,可以直接接收
请求地址:http://localhost:8080/SpringMVC_04/test/t3?name=溜溜球
@Controller
@RequestMapping("test")
public class RedirectController {
@RequestMapping("t3")
public String Test3(String name){
return "/test";
}
}
- 提交的域名称与controller处理方法的参数名称不同时,通过@RequestParam映射
请求地址:http://localhost:8080/SpringMVC_04/test/t3?username=溜溜球
@Controller
@RequestMapping("test")
public class RedirectController {
@RequestMapping("t3")
public String Test3(@RequestParam("username")String name){
return "/test";
}
}
- 提交的是一个对象,要求提交的表单域和对象的属性名一致,参数使用对象即可
请求地址:http://localhost:8080/SpringMVC_04/test/t4?name=kuag&sex=男&age=18
这里是将请求的参数封装成一个对象,通过对象接收,如果字段一致,则接收,否则接收不到(请求参数与实体类属性名一致则能接收)
@RequestMapping("t4")
public String Test4(User user){
System.out.println(user);
return "/test";
}
实体类:
package com.wei.entity;
import org.springframework.stereotype.Component;
@Component
public class User {
private String name;
private String sex;
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
public User() {
}
public User(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
二、数据显示到前端
- 通过ModelAndView
@RequestMapping("t5")
public ModelAndView Test5(ModelAndView modelAndView){
//设置参数
modelAndView.addObject("msg","ModelAndView显示数据");
//跳转页面
modelAndView.setViewName("test");
return modelAndView;
}
- 通过Model
@RequestMapping("t5")
public String Test5(Model model){
//设置数据
model.addAttribute("msg","Model显示数据");
//跳转页面
return "/test";
}
- 通过ModelMap
ModelMap与Model的区别:
Model是精简版的
ModelMap继承了LinkedHashMap,所以ModelMap拥有LinkedHashMap的绝大多数功能
@RequestMapping("t5")
public String Test5(ModelMap modelMap){
//设置数据
modelMap.addAttribute("msg","Model显示数据");
//跳转页面
return "/test";
}