Spring MVC传递接收参数方式小结

网友投稿 848 2022-11-25

Spring MVC传递接收参数方式小结

Spring MVC传递接收参数方式小结

目录一、通过实体Bean接收请求参数二、通过处理方法的形参接收请求参数三、通过HttpServletRequest接收请求参数四、通过@PathVariable接收URL中的请求参数五、通过@RequestParam接收请求参数六、通过@ModelAttribute接收请求参数

大家在开发中经常会用到Spring MVC Controller来接收请求参数,主要常用的接收方式就是通过实体对象以及形参等方式、有些用于GET请求,有些用于POST请求,有些用于两者。 下面的几种常见的后台接收参数的方式分享一下。主要方式如下:

实体 Bean 接收请求参数

处理方法的形参接收请求参数

HttpServletRequest 接收请求参数

@PathVariable 接收 URL 中的请求参数

@RequestParam 接收请求参数

@ModelAttribute 接收请求参数

可以根据实际情况选择合适的接收方式。

一、通过实体Bean接收请求参数

@RequestMapping("/login")

public String login(User user, Model model) {

if ("admin".equals(user.getName())

&& "123456".equals(user.getPwd())) {

model.addAttribute("message", "登录成功");

return "main"; // 登录成功,跳转到主页

} else {

model.addAttribute("message", "用户名或密码错误");

return "login";

}

}

二、通过处理方法的形参接收请求参数

通过处理方法的参数接收请求参数,就是将表单参数直接写入控制器类对应方法的参数中,即参数名称与请求参数名称完全相同。 接收参数模式适用于GET和POST提交请求

@RequestMapping("/login")

public String login(String name, String pwd, Model model) {

if ("admin".equals(user.getName())

&& "123456".equals(user.getPwd())) {

model.addAttribute("message", "登录成功");

return "main"; // 登录成功,跳转到跳转到主页

} else {

model.addAttribute("message", "用户名或密码错误");

return "login";

}

}

三、通过HttpServletRequest接收请求参数

@RequestMapping("/login")

public String login(HttpServletRequest request, Model model) {

String name = request.getParameter("name");

String pwd = request.getParameter("pwd");

if ("admin".equals(name)

&& "123456".equals(pwd)) {

model.addAttribute(fEPvbEd"message", "登录成功");

return "main"; // 登录成功,跳转到 main.jsp

} else {

model.addAttribute("message", "用户名或密码错误");

return "login";

}

}

四、通过@PathVariable接收URL中的请求参数

通过 @PathVariable 获取 URL 中的参数,示例代码如下。

@RequestMapping("/login")

public String login(@RequestParam String name, @RequestParam String pwd, Model model) {

if ("admin".equals(name)

&& "123456".equals(pwd)) {

model.addAttribute("message", "登录成功");

return "main"; // 登录成功,跳转到主页

} else {

model.addAttribute("message", "用户名或密码错误");

return "login";

}

}

五、通过@RequestParam接收请求参数

在方法入参处使用 @RequestParam 注解指定其对应的请求参数。@RequestParam 有以下三个参数:

value:参数名

required:是否必须,默认为 true,表示请求中必须包含对应的参数名,若不存在将抛出异常

defaultValue:参数默认值

@RequestMapping("/login")

public String login(@RequestParam String name, @RequestParam String pwd, Model model) {

if ("admin".equals(name)

&& "123456".equals(pwd)) {

model.addAttribute("message", "登录成功");

return "main"; // 登录成功,跳转到主页

} else {

model.addAttribute("message", "用户名或密码错误");

return "login";

}

}

六、通过@ModelAttribute接收请求参数

@ModelAttribute 注释用于将多个请求参数封装到单个实体对象中,以简化数据绑定过程,并自动作为模型数据公开,以便在视图页面表示中使用。   “通过实体bean接收请求参数”简单地将多个请求参数封装到一个实体对象中,而不将它们作为模型数据公开

@RequestMapping("/login")

public String login(@ModelAttribute("user") User user, Model model) {

if ("admin".equals(name)

&& "123456".equals(pwd)) {

model.addAttribute("message", "登录成功");

return "main"; // 登录成功,跳转到主页

} else {

model.afEPvbEdddAttribute("message", "用户名或密码错误");

return "login";

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:内存管理<原理篇>(八、页面置换)
下一篇:ROS2前置基础教程 | 小鱼教你用make编译ROS2节点
相关文章

 发表评论

暂时没有评论,来抢沙发吧~