SpringMVC运行原理
SpringMVC参数传递的几种方式
1、 服务器向页面传参
- 使用java.util.Map
- 使用org.springframework.ui.Model
- 使用org.springframework.ui.ModelMap
- 使用org.springframework.web.servlet.ModelAndView(建议使用前面三种)
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class ParamController {
@RequestMapping("/map")
public String mapValues(Map<String, Object> map, Model model, ModelMap modelMap) {
// 使用map向页面传参
map.put("username", "prince");
// 使用model
model.addAttribute("sex", "男");
// 使用modelMap
modelMap.put("comment", "风一样的男人");
modelMap.addAttribute("love", "fanfan");
return "param";
}
}
2、 页面向服务器传参
- 使用@RequstParam注解
- 使用HttpServletRequest中的getParameter()方法
- Restful风格中使用@PathVariable注解
@RequestMapping("/receive1")
public void receive1(@RequestParam("uname") String username, @RequestParam("pwd") String password) {
System.out.println(username);
System.out.println(password);
}
@RequestMapping("/receive2")
public void receive2(HttpServletRequest request) {
System.out.println(request.getParameter("uname"));
System.out.println(request.getParameter("pwd"));
}
@GetMapping("receive3/{uname}")
public void receive3(@PathVariable("uname") String username) {
System.out.println(username);
}