springmvc有哪几种请求参数的方式呢?

2023-11-08

转自:

springmvc有哪几种请求参数的方式呢?

传送参数至后台,是每个系统都必须面对的事实,因为系统就是一个实现人机交互的工具,那么Spring MVC中如何在后台获取参数呢?
下文将一一道来,如下所示:

方式一:在Controller的形参中直接写入表单名称用于接收参数,此方式只可用于get提交,如下

    /**
     * 参数写入Controller中
      * @param username
     * @param pwd
     * @return
     */
    @RequestMapping("/createUser")
    public String createUser(String username,String pwd) {
        System.out.println("用户名:"+username);
        System.out.println("密码:"+pwd);
        return "jsp/test";
    }

 访问url http://localhost/springmvTest/test/createUser?username=java265&pwd=888888
注意事项:
       表单参数名需同Controller中方法的参数名称一致 

方式二:使用HttpServletRequest接收参数,此方法可接收post和get两种方式

    /**
     * 采用HttpServletRequest接收
      * @param request
     * @return
     */
    @RequestMapping("/createUser2")
    public String createUser2(HttpServletRequest request) {
        String username=request.getParameter("username");
        String pwd=request.getParameter("pwd");
        System.out.println("用户名:"+username); 
       System.out.println("密码:"+pwd); 
       return "jsp/test";
    }

方式三:、使用一个bean 接收参数,post方式和get方式都可以

操作步骤
1.创建一个bean和表单中参数对应
 

package com.java265.springmvc;
public class UserModel {
    
    private String username;
    private String pwd;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    
}

2.采用bean封装并接收参数
 

    /**
     * 使用bean 接收参数信息
      * @param user
     * @return
     */
    @RequestMapping("/createUser3")
    public String createUser3(UserModel user) {
        System.out.println("用户名:"+user.getUsername());
        System.out.println("密码:"+user.getPassword());
       return "jsp/test";
    }

方式四:使用@PathVariable获取路径中的参数

    /**
     * 使用@PathVariable获取路径中的参数
      * @param username
     * @param pwd
     * @return
     */
    @RequestMapping(value="/createUser4/{username}/{pwd}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String pwd) {
        System.out.println("用户名:"+username);
        System.out.println("密码:"+pwd);
        return "demo/index";
    }

 访问url http://localhost/springmvTest/test/createUser4/java265/888888
  会将url 按照模板的形式转换为变量,并绑定到userName和pwd变量上 

方式五:运用@ModelAttribute 注解的方式 获得POST请求中FORM表单数据
Jsp表单如下:

<form action ="<%=request.getContextPath()%>/demo/createUser5" method="post"> 
     用户名: <input type="text" name="username"/><br/>
     密  码:  <input type="password" name="pwd"/><br/>
     <input type="submit" value="提交"/> 
     <input type="reset" value="重置"/> 
</form> 

Spring MVC Controller如下:

    /**
     * 5、使用@ModelAttribute注解获取POST请求的FORM表单数据
      * @param user
     * @return
     */
    @RequestMapping(value="/createUser5",method=RequestMethod.POST)
    public String createUser5(@ModelAttribute("user") UserModel user) {
        System.out.println("用户名:"+user.getUsername());
        System.out.println("密码:"+user.getPassword());
        return "jsp/test";
    }

方式六:使用注解@RequestParam绑定请求参数到方法入参

     注意设置属性required的值,当值不存在时,会发生相应的异常信息
   如: 请求username不存在时,我们可通过设置required=false,避免无值传入时报错
          @RequestParam(value="username", required=false) 

    /**
     * 运用注解@RequestParam绑定请求参数到方法入参
      * @param username
     * @param pwd
     * @return
     */
    @RequestMapping(value="/createUser6",method=RequestMethod.GET)
    public String createUser6(@RequestParam("username") String username,@RequestParam("pwd") String pwd) {
        System.out.println("用户名:"+username);
        System.out.println("密码:"+pwd);
        return "jsp/test";
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springmvc有哪几种请求参数的方式呢? 的相关文章

  • 解析@EnableWebMvc 、WebMvcConfigurationSupport和WebMvcConfigurationAdapter

    在spring boot spring mvc 的项目中 有些时候我们需要自己配置一些项目的设置 就会涉及到这三个 那么 他们之间有什么关系呢 首先 EnableWebMvc WebMvcConfigurationSupport 使用了 E
  • web.xml中Servlet中init-param的作用说明

    转自 web xml中Servlet中init param的作用说明 下文讲述servlet配置中的功能说明 如下所示 servlet中init param属性下的值 用于servlet的init方法时 传入参数信息将在带哦用init方法时
  • SimpleServletHandlerAdapter类简介说明

    转自 SimpleServletHandlerAdapter类简介说明 下文笔者讲述SimpleServletHandlerAdapter类简介说明 如下所示 SimpleServletHandlerAdapter简介 SimpleServ
  • springMVC中两种validation的简单使用

    本文转自 http elf8848 iteye com blog 1299587 Spring 基于注释的校验机制 1 支持JSR303 Bean Validation定义的校验规范 2 支持Spring框架定义的Validator接口定义
  • log4j:WARN No appenders could be found for logger 问题解决

    在springmvc的web项目中常常会在tomcat启动的时候出现这种提示 log4j WARN No appenders could be found for logger org springframework web context
  • springmvc+log4j.xml操作日志记录,详细配置

    原文地址 http www cnblogs com v weiwang p 4814050 html 参考地址 http rockelixir iteye com blog 1902352 需要导入包 log包 log4j 12 17 ja
  • 设置一个FreemarkerExceptionHandler捕获freemarker页面上的异常

    在Freemarker页面中如果使用 userName 并且userName为空 那么Freemarker页面就会崩掉 需要设置默认值 userName 来避免对象为空的错误 同理 user userName 也应该写成这样 user us
  • Spring MVC中如何进行转发和重定向呢?

    转自 Spring MVC中如何进行转发和重定向呢 重定向 我们将用户的定向到另一个视图 jsp 中处理 此操作是一个客户端行为 类似与url的链接操作 转发 将用户的请求转发到另一个视图或controller处理 此操作是一个服务器端行为
  • GET请求,接收多个对象参数

    非常简单 如下 GetMapping test public void test String name City city 省略 还没看懂 详细解释一下 例如City类有id describe字段 Data public class Ci
  • spring mvc 2.5.6配置

    兼容公司老版本项目 必须得用spring mvc2 5 6 那么问题来了 怎么配置controller都抛出no mapping的错误 经过查文档得出以下配置 仅供参考 servlet config xml
  • Spring对Cache的支持

    从3 1开始 Spring引入了对Cache的支持 其使用方法和原理都类似于Spring对事务管理的支持 Spring Cache是作用在方法上的 其核心思想是这样的 当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓
  • springMvc 自定义注解以及自定义异常处理

    上一篇写到自定义错误处理 那么有这么个需求 如果每个模块需要错误处理页面不同 那么上面一篇写死为error jsp就不合理了 所以就需要我们想跳哪个错误页面就哪个页面 这样就灵活多了 我采用自定义注解的方式了指定我们需求跳转的错误页面 具体
  • Spring boot项目设定返回数据为JSON固定格式

    1 配置处理json的配置类 package com test config import com alibaba fastjson support spring FastJsonHttpMessageConverter import or
  • Spring MVC教程第一篇

    转自 Spring MVC教程第一篇 Spring MVC是Java平台下的一个框架 Spring MVC是一个开源框架 它用于开发Java Web应用程序 Spring框架由Rod Johnson编写 在2003年6月采用Apache 2
  • Spring MVC参数的传递与接收

    SpringMVC主要做的就两方面的操作 在Controller接收从jsp传递过来的数据 把Controller的数据传递到jsp页面 将Controller里边的数据传到jsp 其返回值有三种类型 ModelAndView void S
  • springmvc 使用JSR-303进行数据校验

    项目中 通常使用较多的是前端的校验 比如页面中js校验以及form表单使用bootstrap校验 然而对于安全要求较高点建议在服务端进行校验 服务端校验 控制层controller 校验页面请求的参数的合法性 在服务端控制层controll
  • Spring MVC使用注解实现账户注册与登陆

    涉及到的注解 Controller 控制器类 RequestMapping 映射路径 RequestParam 用于将指定的请求参数赋值给方法中的形参 定义域对象 User1 用来接受并封装前台传递的数据 package com wen d
  • spring boot 项目开发常用目录结构

    在spring boot开发中一些常用的目录划分 一 代码层结构 根目录 net csdn 1 启动类 CsdnApplication java 推荐放在根目录net csdn包下 2 实体类 domain A net csdn domai
  • springmvc / /* /img/**等问题

    在配置springmvc的前端控制器 DispatcherServlet的时候有三种配置方式 action 访问以 action结尾 由DispatcherServlet进行解析 第二种 所以访问的地址都由DispatcherServlet
  • 关于SSM框架体会和小结

    前言 使用SSM spring SpringMVC和Mybatis 已经有三个多月了 项目在技术上已经没有什么难点了 基于现有的技术就可以实现想要的功能 当然肯定有很多可以改进的地方 之前没有记录SSM整合的过程 只写了个搭建Maven过程

随机推荐

  • Maven 命令

    输出依赖树 mvn dependency tree 输出依赖树到指定文件 mvn dependency tree gt tree txt 输出lib mvn dependency copy dependencies DoutputDirec
  • 如何将爬虫的数据添加到mysql数据库中

    以爬取糗事百科中24小时网页中第一列表页中所有文章的内容 作者 搞笑数 评论数为例 将爬取的四项内容存入到mysql数据库中 思路 要想存入到数据库中就需要用到数据库中的表 所以我们首先创建一个名叫 myblog 的数据库 然后在此数据库中
  • PHP 的Laravel 框架

    在windows下 搭建PHP的Laravel框架很简单 先把PHP的安装目录 加入到环境变量里 在命令行能访问到php v 就说明可以了 然后 这些是需求的环境 PHP gt 7 1 3 不用说了 OpenSSL PHP扩展 用compo
  • 51单片机编写60秒倒计时程序

    include
  • linux下mysql安装

    一 解压缩mysql 5 6 4 m7 tar zip 1 gt unzip mysql 5 6 4 m7 tar zip 会生成mysql 5 6 4 m7 tar gz的压缩文件 2 gt tar zxvf mysql 5 6 4 m7
  • mysqlbinlog命令使用

    参考 https www cnblogs com zouhong p 14540380 html https www iteye com blog wx1568934009 2469938 获取二进制日志列表show binary logs
  • Shell Script—线程

    本文主要介绍shell中的线程 线程中的等待和信号 1 线程 Shell中线程的实现有多种方式 目前只介绍通过 符号 通过在命令末尾加上 符号 可以在后台启动一个进程并立即返回 允许Shell进程继续执行其他命令 示例 bin bash N
  • 023.二叉树的最近公共祖先

    题目链接 236 二叉树的最近公共祖先 大概思路 题目要求 给定一个二叉树 找到该树中两个指定节点q p的最近公共祖先x q p一定存在且值不同 最近公共祖先 两个节点共同的祖先 同时深度尽可能大 其中一个可以是祖先本身 思路 q p的最近
  • 作业asd

    餐馆 class Restaurant def init self restaurant name cuisine type self restaurant name restaurant name self cuisine type cu
  • UI设计基础知识点之Android设计规范篇

    目录 基础概念 Android界面设计规范 Android切图标注 安卓开发单位换算 总结 一 基础概念 1 什么是DPI DPI Dots Per Inch 每英寸点数 表示指屏幕密度 是测量空间点密度的单位 最初应用于打印技术中 它表示
  • 杂项:art-template-loader

    ylbtech 杂项 art template loader 1 返回顶部 2 返回顶部 3 返回顶部 4 返回顶部 5 返回顶部 1 https www npmjs com package art template loader 2 ht
  • Vivado中怎么做set_input_delay约束

    参考 https forums xilinx com t5 Timing Analysis Hold violation in ISERDES td p 715121 前言 在STA中 要分析上游器件和FPGA之间的时序关系就得指定inpu
  • VSCode+arm-none-eabi+msys使用Make实现STM32交叉编译

    记录一下在Windows平台下 利用VSCode的arm none eabi扩展和msys使用Make实现STM32的交叉编译 准备 1 安装arm none eabi扩展 在VSCode的扩展窗口 搜索eabi 安装windows arm
  • 解决HttpClient工具中application/x-www-form-urlencoded表单提交时,请求参数中文乱码问题

    一 参数乱码现象 当我去请求第三方接口时 接口接收格式为Form表单的时候 使用HttpClient工具类 这时 对于封装进HttpPost对象里的请求参数 如果有中文参数 会出现乱码的现象 二 代码现象复现 controller层 Res
  • c语言中\n,\t,\r,\b的用法和区别

    1 n 最容易理解 就是 换行 跳到下一行的起始位置 2 t 也容易理解 即跳到下一制表位 举例如下图所示 3 r 回车 不换行 r后边的数字替代 这一行最开始的相等数目的数字 举例 4 b 退格 也就是电脑键盘上的backspace b后
  • python pip命令安装 pyinstaller失败提示Installing build dependencies ... error

    1 现象 2 解决方案 自己下载 手动安装 2 1 下载地址 https pypi org project PyInstaller 3 5 files 2 2 解压到E python PyInstaller 3 5 2 3 cmd进入到解压
  • 差分信号简述

    差分信号是一种信号传输技术 传统的传输方法使用一根信号线传输信号 一根地线接地 差分信号需要在两根线上都传输信号 且两个信号振幅相同 相位相反 这样的信号就是差分信号 使用差分信号传输的好处是 只要传输正负信号的两根线在物理上是紧密耦合在一
  • echart柱状图Y轴最小间隔问题,Y轴不显示小数

    今天来说说echart 柱状图 Y轴的最小值 间隔问题 最近项目中用到柱状图 数据量少的时候 Y轴会出现小数 但是我们产品小哥哥说不能出现小数 好了 那就开干 option xAxis type category data Mon Tue
  • Linux安装opencv(附带出错,解决方法参考)

    前言 lib库 运行库 dev库 开发 gdb库 调试 安装 1 1 OpenCV是一个开源的软件 在一个source文件下 包含了所有的源代码文件 使用哪种操作系统 windows还是linux 使用哪种编译器 注意 执行安装包很可能不仅
  • springmvc有哪几种请求参数的方式呢?

    转自 springmvc有哪几种请求参数的方式呢 传送参数至后台 是每个系统都必须面对的事实 因为系统就是一个实现人机交互的工具 那么Spring MVC中如何在后台获取参数呢 下文将一一道来 如下所示 方式一 在Controller的形参