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("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.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

到此这篇关于Spring MVC传递接收参数的几种方式的文章就介绍到这了,更多相关Spring MVC传递接收参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springmvc 传递和接收数组参数的实例

    java url中如何传递数组,springMVC框架controller类如何接收数组参数? 下面介绍一下URL中传递数组参数方法: dd.do?titles[]=col1&titles[]=col2&titles[]=col3 或者使用ajax方式传递: var param = {titles:['col1','col2','col3']}; $.ajax({url:"dd.php", type:"post", data:param, async

  • Spring MVC参数传递中文乱码解决方法分享

    概述 中国特色社会主义乱码问题是我们经常会碰到的问题,解决的办法有很多,本文分别介绍了GET方式和POST方式中文乱码解决方案中一劳永逸的办法. GET提交中文乱码解决方案 在乱码的Controller文件中采用下面的方法将编码转换成UTF-8 String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); 修改项目所在的Tomcat服务器

  • SpringMVC 接收前端传递的参数四种方式小结

    目录 SpringMVC 接收前端传递的参数四种方式 @RequestParam 获取注解 @PathVariable获取注解 SpringMVC,可以不设置任何注解即可接收参数 SpringMVC,也可以自动包装成对象 @RequestBody 用来接收数组或者复杂对象 SpringMVC的自动封装(不传参也能进入) SpringMVC接收不到前端传递的参数原因 代码清单 SpringMVC 接收前端传递的参数四种方式 @RequestParam注解 @PathVariable注解 Sprin

  • 解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题

    新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param>

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

    目录 一.通过实体Bean接收请求参数 二.通过处理方法的形参接收请求参数 三.通过HttpServletRequest接收请求参数 四.通过@PathVariable接收URL中的请求参数 五.通过@RequestParam接收请求参数 六.通过@ModelAttribute接收请求参数 大家在开发中经常会用到Spring MVC Controller来接收请求参数,主要常用的接收方式就是通过实体对象以及形参等方式.有些用于GET请求,有些用于POST请求,有些用于两者. 下面的几种常见的后台

  • Spring MVC url提交参数和获取参数

    普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: /** * Spring MVC URL提交参数 * @param name * @return */ @RequestMapping("/param") public ModelAndView getInfo(@RequestParam("name") String name){ Strin

  • Spring MVC获取查询参数及路径参数代码实例

    这篇文章主要介绍了Spring MVC获取查询参数及路径参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Jsp页面 query.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> &l

  • Spring MVC常用客户端参数接收方式详解

    在MVC结构中,控制器组件主要的功能就是接收请求.处理请求.生成响应,接收客户端传来的请求参数的往往是控制器要做的第一件事. Book实体类Book.java public class Book { private Integer bookId; private String author; //生成Get.Set方法,此处省略 } 一.直接用参数名匹配请求参数 客户端界面(表单): <form action="/queryString" method="post&qu

  • python传递参数方式小结

    本文实例总结了python传递参数方式.分享给大家供大家参考.具体分析如下: 当形参如*arg时表示传入数组,当形参如**args时表示传入字典. def myprint(*commends,**map): for comm in commends: print comm for key in map.keys(): print key,map[key] myprint("hello","word",username="tian",name=&q

  • spring MVC中接口参数解析的过程详解

    前言 前天工作中遇到了这样一个问题,我在接口的参数封装了一个pojo,这是很常见的,当参数一多,惯性的思维就是封装一个pojo.那么在参数前有很多注解可以添加,比如:@requestParam,@requestBody,@pathvariable等.我的理解是这样的,首先我先申明,我并是没有看过源码,只是凭经验理解.@requestParam试用于get请求,参数在http的header中的URL上,具体放在?后面以key=value的形式存在.@requestBody适用于post请求中参数在

  • 基于spring mvc请求controller访问方式

    目录 spring mvc请求controller访问 1.一个Controller里含有不同的请求url 2.采用一个url访问 3.RequestMapping在Class上 4.在SpringMVC中常用的注解 springmvc请求一次,访问多个controller方法 举例 结论 spring mvc请求controller访问 1.一个Controller里含有不同的请求url @Controller //类似Struts的Action public class TestContro

  • Spring实现IoC的多种方式小结

    控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了. IoC是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现Io

  • vue跳转页面打开新窗口,并携带与接收参数方式

    目录 1.携带普通类型参数 2.携带复杂类型参数 vue页面跳转并传参的八种方式 方法一 方法二 方法三 方法四 方法五 方法六 方法七 方法八 1.携带普通类型参数 字符串.数字等. path:要跳转新页面的路由链接 query:要携带的参数 let pathInfo = this.$router.resolve({   path:'/product_detail',      query:{          productId:'11'      }  })  window.open(pa

  • Spring复杂对象创建的方式小结

    在Spring中,对于简单类型的创建,我们可以使用set注入和构造注入.但是对于复杂类型的如何创建? 什么是复杂类型,比如连接数据库的Connection对象,以及Mybatis中的SqlSessionFactory对象.在以前我们是通过这种方式获取Connection对象的: Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnecti

随机推荐