1、 自动类型匹配
针对少量的参数,可以考虑直接使用“自动类型匹配”方式来获取参数。 要求:请求参数名和Controller方法的形参参数名一致。
/** * 自动类型匹配 */
@RequestMapping(“/autoGetParam”)
public ModelAndView autoGetParam(String userName , int password) {
System.out.println(userName +“—>”+password);
ModelAndView mv=new ModelAndView(“/getParameter/result”);
mv.addObject(“msg”, “自动类型匹配: “+userName +”—”+password);
return mv; }
2、 测试表单:
3、 测试结果:
自动封装pojo(自动装箱)
自动装箱主要针对大量参数提交的情况。 要求:请求参数名和Controller方法形参参数对象的中的属性名称一致
1、使用com.gx.model.User:
2、控制器中的方法:
/** * 自动装箱(pojo) */
@RequestMapping(“/pojoGetParam”)
public ModelAndView pojoGetParam(User user) {
System.out.println(user.getUserName() +“—>”+user.getPassword());
ModelAndView mv=new ModelAndView(“/getParameter/result”);
mv.addObject(“msg”, “自动装箱(pojo): “+user.getUserName() +”— >”+user.getPassword());
return mv; }
3、测试表单:
使用request获取请求参数
使用request获取请求参数,使用方式就和Servlet类似。本方式通过“自动封装pojo”把 javax.servlet.http.HttpServletRequest 给了Controller的方法,然后通过 request.getParameter(“参数名”) 的方式获取参数
1、 控制器中的方法:
/** * 使用request获取请求参数 */
@RequestMapping(“/requestGetParam”)
public ModelAndView requestGetParam(HttpServletRequest request) {
String userName=request.getParameter(“userName”);
String password=request.getParameter(“password”);
System.out.println(userName +“—>”+password);
ModelAndView mv=new ModelAndView(“/getParameter/result”);
mv.addObject(“msg”, “用request获取请求参数: “+userName +”—”+password);
return mv; }
2、 测试表单:
使用@RequestParam获取参数
允许请求参数名与方法参数名不一致时
1、 控制器中的方法:
/** * 使用@RequestParam获取参数
- value = ”请求中参数名“
- required = true 默认true,表示这个参数是必须的!否则将报404错误码;
- defaultValue = “默认值” 默认值,表示如果请求中没有同名参数时的默认值 */ @RequestMapping(“/atRequestParam”)
public ModelAndView atRequestParam(@RequestParam(value = “userName”)
String userName, @RequestParam(value = “password” ,required = false,defaultValue = “123”)String pass) {
System.out.println(userName +“—>”+pass);
ModelAndView mv=new ModelAndView(“/getParameter/result”);
mv.addObject(“msg”, “使用@RequestParam获取参数: “+userName +”—”+pass); r
eturn mv; }
2、 测试表单: