springmvc教程-@RequestParam使用(一)

介绍

使用 @RequestParam 注解后,将请求中指定名字的参数值,赋给Controller方法形参

应用场景

请求中参数名 与 Controller方法形参名 不同时,如下:

在前后台分离式开发中,前台页面是由 前端程序员开发的,表单控件名是由 前端程序员命名的,命名为:u_name、u_pwd

后台程序员编写 Controller 时,方法的 形参名为:username、password,如果谁都不想改名,那么就用该注解

支持的数据类型

  • 基本数据类型、字符串
  • javabean
  • 数组
  • 集合。如:List、Map等

属性

  • value:请求中的参数名称。只用该属性时可省略;当用多个属性时,不能省略
  • required:请求中是否必须有此参数,默认 true,表示请求中必须有此参数,否则报错

例子

这里只演示一种,想 javabean、数组可参考 本例 和 springmvc教程-获取请求参数(参数名 与 Controller方法的形参名相同)

html 代码

<form method="post" action="login">
    用户名:<input name="u_name" type="text"> <br>
    密码:<input name="u_pwd" type="password"> <br>
    <input type="submit">

</form>

Controller 代码

@Controller
public class Login {
    @RequestMapping("/login")
    public String login(@RequestParam("u_name") String username,@RequestParam("u_pwd") String password, HttpSession session){
        System.out.println(username+"-"+password);
        session.setAttribute("username",username);
        return "success";
    }
}

required 属性

表示 参数名是否必须存在,默认为true,表示 必须 存在

由于 Controller中使用 @RequestParam("u_name") ,默认 required=true ,那么前台页面 必须提供 u_name 参数,该参数可以是 空值,但必须得有此参数,没有此参数会报错

如果设置 required = false ,即:@RequestParam(value = "u_name",required = false),访问时没有提供 u_name 参数,也不会报错


原文出处:/show_1IX52G8rorH.html