SpringMVC中Controller接收请求参数的常见方式
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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" ;
}
}
}
以上是关于SpringMVC中Controller接收请求参数的常见方式的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC中Controller接收请求参数的常见方式