SpringMVC-06-接收参数和数据回显
接收前端的参数
原生通过req.getParameters(“name”)来获得
在Spring框架下
如果方法名中的形参名和前端名字一样直接接收
@Controller
public class ControllerUser {
@GetMapping("/user")
public String FromFrontEnd(String name){
System.out.println(name);
return "redirect:/index.jsp";
}
}
url
http://localhost:8080/user null
http://localhost:8080/user?name=void void
若名字不匹配
http://localhost:8080/user null
通过@RequestParam做参数映射,建议除了对象,尽量加上,降低错误的发生率
(回忆mybatis的@Param())
@Controller
public class ControllerUser {
@GetMapping("/user")
public String FromFrontEnd(@RequestParam("username") String name){
System.out.println(name);
return "redirect:/index.jsp";
}
}
url
http://localhost:8080/user?username=void void
传的是一个对象
则url中的参数名需和对象的属性名一致,否则无法获得,则为空
@Controller
public class ControllerUser {
@GetMapping("/user")
public String FromFrontEnd(User user){
System.out.println(user);
return "redirect:/index.jsp";
}
}
url
http://localhost:8080/user?id=1&username=xiaoming&age=10 User(id=1, name=null, age=10)
数据回显
ModelAndView
该对象需要封装数据和跳转信息,重写Controller接口方法时,指定的返回的类型,使用频率不算高
//模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","hello");
mv.setViewName("test");
return mv;
ModelMap
继承了LinkedHashMap,所以LinkedHashMap所拥有的特性,ModelMap也有
和Model的用法差不多
Model
用的最多,和ModelMap有联系,它的实现类继承了ModelMap,是精简版
@Controller
public class ControllerUser {
@GetMapping("/user")
public String FromFrontEnd(Model model){
model.addAttribute("msg","hello");
return "test";
}
}