SpringMVC中Controller接收请求参数的常见方式

SpringMVC中Controller接收请求参数的常见方式

Controller接收请求参数的方式有很多种,有的适合get请求方式,有的适合post请求方式,有的两者都适合,开发者可以根据自己的需求选择适合的接收方式。

1-通过实体Bean接收请求参数

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public String login(UserForm userForm, HttpSession session, Model model){
        if("wangguodong".equals(userForm.getUname()) && "123".equals(userForm.getUpass())){ //用户名和密码都相等
            session.setAttribute("u", userForm);
            return "main" ; //登录成功,跳到主页面
        }else{
            model.addAttribute("messageError", "用户名或密码错误") ;
            return "login" ;
        }
    }

    @RequestMapping("/register")
    public String register(UserForm userForm, Model model){
        if("wangguoodng".equals(userForm.getUname()) && "123".equals(userForm.getUpass()) && "123".equals(userForm.getReupass())){
            return "login" ;//注册成功,进入登录页面
        }else{ //注册失败,返回注册页面
            model.addAttribute("uname", userForm.getUname()) ;
            return "register" ;
        }
    }
}

2-通过处理方法的形参接收请求参数
就是直接把表单参数写在控制类相应方法的形参中,形参名称与请求参数名称完全相同。

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public String login(String uname, String upass, Model model){
        if("wangguodong".equals(uname) && "123".equals(upass)){ //用户名和密码都相等
            return "main" ; //登录成功,跳到主页面
        }else{
            model.addAttribute("messageError", "用户名或密码错误") ;
            return "login" ;
        }
    }

    @RequestMapping("/register")
    public String register(String uname, String upass, String reupass, Model model){
        if("wangguodong".equals(uname) && "123".equals(upass) && "123".equals(reupass)){
            return "login" ;//注册成功,进入登录页面
        }else{ //注册失败,返回注册页面
            model.addAttribute("uname", uname) ;
            return "register" ;
        }
    }
}

3-通过HttpServletRequest接收请求参数,适用于get和post请求方式。

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public String login(HttpServletRequest request, Model model){
        String uname = request.getParameter("uname") ;
        String upass = request.getParameter("upass") ;
        if("wangguodong".equals(uname) && "123".equals(upass)){ //用户名和密码都相等
            return "main" ; //登录成功,跳到主页面
        }else{
            model.addAttribute("messageError", "用户名或密码错误") ;
            return "login" ;
        }
    }

    @RequestMapping("/register")
    public String register(HttpServletRequest request, Model model){
        String uname = request.getParameter("uname") ;
        String upass = request.getParameter("upass") ;
        String reupass = request.getParameter("reupass")  ;
        if("wangguodong".equals(uname) && "123".equals(upass) && "123".equals(reupass)){
            return "login" ;//注册成功,进入登录页面
        }else{ //注册失败,返回注册页面
            model.addAttribute("uname", uname) ;
            return "register" ;
        }
    }
}

4-通过@RequestParam接收请求参数,请求参数名可以与接收参数名称不一致。

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public String login(@RequestParam String uname, @RequestParam String upass,  Model model){
        if("wangguodong".equals(uname) && "123".equals(upass)){ //用户名和密码都相等
            return "main" ; //登录成功,跳到主页面
        }else{
            model.addAttribute("messageError", "用户名或密码错误") ;
            return "login" ;
        }
    }

    @RequestMapping("/register")
    public String register(@RequestParam String uname, @RequestParam String upass, @RequestParam String reupass, Model model){
        if("wangguodong".equals(uname) && "123".equals(upass) && "123".equals(reupass)){
            return "login" ;//注册成功,进入登录页面
        }else{ //注册失败,返回注册页面
            model.addAttribute("uname", uname) ;
            return "register" ;
        }
    }
}

5-通过@ModelAttribute接收请求参数
当该注解放在处理方法的形参上时,用于将多个请求封装到一个实体对象,从而简化数据绑定流程,而且自动暴露为模型数据。


@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public String login(@ModelAttribute("user")UserForm user){
        if("wangguodong".equals(user.getUname()) && "123".equals(user.getUpass())){ //用户名和密码都相等
            return "main" ; //登录成功,跳到主页面
        }else{
            return "login" ;
        }
    }

    @RequestMapping("/register")
    public String register(@ModelAttribute("user") UserForm user){
        if("wangguodong".equals(user.getUname()) && "123".equals(user.getUpass()) && "123".equals(user.getReupass())){
            return "login" ;//注册成功,进入登录页面
        }else{ //注册失败,返回注册页面
            return "register" ;
        }
    }
}

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuist__NJUPT

给个鼓励吧,谢谢你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值