获取页面提交的参数
直接写参数形参,适用于get方法,不适用于post
@RequestMapping("/list")
public String userList(String username) {
System.out.println("username is:"+username);
return "massageList";
}
通过HttpServletRequest接收,post方式和get方式都可以。
@RequestMapping("/list")
public String userList(HttpServletRequest request) {
String username=request.getParameter("username");
System.out.println("username is:"+username);
return "massageList";
}
通过一个bean来接收,post方式和get方式都可以。
public class UserModel {
private String username;
private String password;
//get、set方法省略
}
用这个bean来封装接收的参数
@RequestMapping("/login")
public String login(UserModel user) {
System.out.println("username is:"+user.getUsername());
System.out.println("password is:"+user.getPassword());
return "index";
}
通过@PathVariable获取路径中的参数 restful开发风格(常用)
@RequestMapping(value="/userList/{username}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username) {
System.out.println("username is:"+username);
return "messageList";
}
访问路径为:http://localhost:8080/demo/userList/admin 即username=admin
使用@ModelAttribute注解获取POST请求的FORM表单数据
@RequestMapping(value="/userList",method=RequestMethod.POST)
public String userList(@ModelAttribute("user") UserModel user) {
System.out.println("username is:"+user.getUsername());
System.out.println("password is:"+user.getPassword());
return "index";
}
用注解@RequestParam绑定请求参数到方法入参(常用)
@RequestMapping(value="/userList",method=RequestMethod.GET)
public String userList(@RequestParam(value = "pageSize",required = false,defaultValue = "12") int pageSize) {
System.out.println("pageSize is:"+pageSize);
return "index";
}
返回数据到页面
通过HttpServletRequest返回数据
@RequestMapping("/list")
public String user(String username) {
User user=userService.getUserByUsername(username);
request.setAttribute("user", user);//返回数据
return "user";//返回视图
}
通过Model返回数据(常用)
@RequestMapping("/list")
public String user(Model model,String username) {
User user=userService.getUserByUsername(username);
model.addAttribute("user", user);//返回数据
return "user";//返回视图
}
通过Map返回数据
@RequestMapping("/list")
public String user(Map map,String username) {
User user=userService.getUserByUsername(username);
map.put("user", user);//返回数据
return "user";//返回视图
}
通过ModelMap返回数据(常用)
@RequestMapping("/list")
public String user(ModelMap modelMap,String username) {
User user=userService.getUserByUsername(username);
modelMap.put("user", user);//返回数据
return "user";//返回视图
}
通过ModelAndView返回数据与视图
写法一
@RequestMapping("/list")
public ModelAndView user(String username) {
User user=userService.getUserByUsername(username);
ModelAndView mav=new ModelAndView("user");//返回视图
mav.addObject("user", user);//返回数据
//mav.getModel().put("user", "user");
return mav;
}
写法二
@RequestMapping("/list")
public ModelAndView user(String username) {
User user=userService.getUserByUsername(username);
ModelAndView mav = new ModelAndView(); mav.setViewName("welcome");//返回视图
mav.addObject("user", user);//返回数据
return mav;
}
写法三
@RequestMapping("/list")
public ModelAndView user(String username,ModelMap model) {
User user=userService.getUserByUsername(username);
ModelAndView mav = new ModelAndView();
model.put("user", user);//返回数据
return new ModelAndView("reservationQuery",model;
}
本质为request方法
SpringMVC重定向和转发
重定向
return "forward:index.html";
转发
return “redirect:index.html”;