SpringMvc Controller中几种参数的绑定

2023-11-19

1•SpringMVC默认支持的绑定类型有:

2•HttpServletRequest对象:通过request对象可以获取参数信息

3•HttpServletResponse对象:通过response对象可以处理响应信息

4•HttpSession对象:获取session中存储的对象

5•Model/ModelMap:Model是一个接口,ModelMap是一个接口的实现。作用是将模型数据填充到request域。

直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则是接收不到数据的。

Controller : public void controllerTest(Integer id){}

request : http://localhost:8080/springMvcTest/controllerTest?id=2;

使用@RequestParam进行参数绑定,在使用这个注解进行绑定的时候,参数名无需和请求中的参数名保持一致。 

Controller : public void controllerTest(@RequestParam(value="id") Integer goods_id){}

@RequestParam(value="id") Integer goods_id 表示将请求中的id属性绑定到goods_id这个参数上

 

传递对象参数

要求页面中input标签的name属性值和controller的pojo形参中的属性名称一致,即可将页面中数据绑定到pojo

Controller : public void controllerTest(User user){}

实体类:

public class User{

private String name;

private String realName;

private String pwd;

}

jsp页面:

<form action="" method="post">

<input name="name" type="text"/>

<input name="realName" type="text"/>

......

</form>

 

/**

   * 测试参数为HttpSession

   * @param session

   * @return

   */

  @RequestMapping("/testSession")

  public String testSession(HttpSession session){

  session.setAttribute("message", "zhanghw--haha");

  return "hello";

  }

/**

   * 测试参数为Model

   * @param model

   * @return

   */

  @RequestMapping("/testString2")

  public String testString2(Model model){

  //传递数据到hello.jsp上

  model.addAttribute("message", "Test String2");

  //request.setAttribute("message", "Test String");

  return "hello";//指定逻辑视图名,通过视图解析器解析为jsp物理路径

  } 

/**

   * 测试简单参数

   * @param id

   * @return

   */

  @RequestMapping("/testParameter")

  public String testParameter(Integer id){

  System.out.println(id);

  return "hello";

  }

 

/**

   * 测试注解简单参数

   * @param gid

   * @return

   */

  @RequestMapping("/testRequestParam")

  public String testRequestParam(@RequestParam(value="id")Integer gid){

  System.out.println(gid);

  return "hello";

  }

 

/**

   * 测试对象参数

   * @param user

   * @return

   */

  @RequestMapping("/testObjectParam")

  public String testObjectParam(User user){

  System.out.println(user.getName());

  System.out.println(user.getRealName());

  System.out.println(user.getPwd());

  return "hello";

  }

 

 

模拟用户注册,测试对象参数

<form action="${pageContext.request.contextPath}/testObjectParam.action" method="post">

  用户名:<input type="text" name="name">

  真实姓名:<input type="text" name="realName">

  密码:<input type="password" name="pwd">

  <input type="submit" value="注册">

</form><br>

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMvc Controller中几种参数的绑定 的相关文章

随机推荐

  • 传统IO与零拷贝

    传统IO 传统的 I O 数据传输是指在计算机系统中 使用输入 输出 I O 操作进行数据传输的一种方式 这种方式通常涉及将数据从内存传输到外部设备 如磁盘 网络等 或从外部设备传输到内存 传统的 I O 数据传输通常采用阻塞式的方式 即在
  • C# 4.0的一些新特性

    vs2010正式版4月12日发布了 前几天我也下了一个 但这几天都没有时间好好试用一下 今天针对C 语言的新特性使用了一下 感觉还不错 有几个新特性和大家分享一下 希望我没有太火星 一 新关键词 dynamic 在新版本的C 中 dynam
  • 【尚硅谷】SSM框架之SSM学习笔记

    MyBatis MyBatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis 2010年6月这个项目由Apache Software Foundation迁移到了Google Code 随着开发团队转投
  • rust + ffmpeg + sdl2 视频播放器,用纯RUST实现音视频流媒体服务

    Rust是一门系统编程语言 专注于安全 尤其是并发安全 支持函数式和命令式以及泛型等编程范式的多范式语言 RTMP协议确实复杂 在做这个项目之前 看过很多帖子 看过官方文档 但总是感觉不能彻底的理解清楚 在实现过一遍此协议之后 感觉清楚了不
  • 浅谈以太坊智能合约的设计模式与升级方法

    浅谈以太坊智能合约的设计模式与升级方法 1 最佳实践 2 实用设计案例 2 1 控制器合约与数据合约 1 gt 1 2 2 控制器合约与数据合约 1 gt N 2 3 控制器合约与数据合约 N gt 1 2 4 控制器合约与数据合约 N g
  • SpringBoot整合Mybatis-plus实现多级评论

    在本文中 我们将介绍如何使用SpringBoot整合Mybatis plus实现多级评论功能 同时 本文还将提供数据库的设计和详细的后端代码 前端界面使用Vue2 数据库设计 本文的多级评论功能将采用MySQL数据库实现 下面是数据库的设计
  • [学习记录]Flask会话维护

    前置知识 1 http是一种无状态的通信协议 本身不保存通信状态 2 web服务器本质上负责接收用户的请求 request 并按照规则给予用户响应 response 3 会话 session 是web服务器用来管理用户的一种方式 在一次会话
  • 图像描述算法排位赛:SceneXplain 与 MiniGPT4 谁将夺得桂冠?

    如果你对图像描述算法的未来感到好奇 本场 图像描述算法排位赛 绝对是你不能错过的 在这场较量中 SceneXplain 和 MiniGPT 4 将会比试 谁将摘得这场比赛的桂冠 背景介绍 在上篇文章中 我们介绍了图像描述 Image Cap
  • List[Bean]与jsonArray字符串的相互转换

    List User 与jsonArray字符串的相互转换 object testo725 def main args Array String Unit val lili User User lili 15 val tom User Use
  • Windows基础命令

    一 目录和文件的应用操作 1 cd命令 cd d d 切换d盘目录 因为改变了驱动器 所有需要加上 d 选项 cd c 如果没有改变驱动器号 就不需要加 d 选项 目录分为相对路径和绝对路径 相对路径 以当前为起点 代表的是当前路径 代表的
  • 稀疏技术——使用MATLAB编写

    稀疏技术 使用MATLAB编写 导读 核心思想 具体代码 结果 导读 本文源于武老师电力系统仿真课程的其中一个作业 了解 SPICE的同学可能知道SPICE SimulationProgram with Integrated Circuit
  • 架构设计之如何写架构设计说明书

    架构设计是需求分析到软件实现的桥梁 也是决定软件质量的关键 编制架构设计说明书是开发人员向架构师转变必定会经历的过程 在架构师整个的成长过程中 必定会经历编制架构设计说明书 评审架构设计说明书以及根据业务需求分析设计系统架构的三个过程 作为
  • 全面介绍:从零开始学习Playwright白动化测试框架

    01 简介 Playwright是2021年微软开源的一个项目 playwright python 针对 Python 语言的纯自动化工具 它可以通过单个API自动执行 Chromium Firefox 和 WebKit 浏览器 同时支持以
  • 6-3 简单求和 (10分)

    6 3 简单求和 10分 本题要求实现一个函数 求给定的N个整数的和 函数接口定义 intSum intList intN 其中给定整数存放在数组List 中 正整数N是数组元素个数 该函数须返回N个List 元素的和 裁判测试程序样例 i
  • Unity客户端面试题集锦

    正在求职中 近期准备开始求职的小伙伴们看过来 贴心的我 这次又给大家准备了 面试题大礼包 Unity游戏开发工程师的面试过程中 我们总能接触到许多眼熟的面试题目 这部分的分数如果不小心丢了 那才是最可惜的 大厂的大门只会早早就在你眼前关上
  • AngularJS学习入手资料

    这是一个非常好的入门技术学习网站 非常棒 就在这里学习吧 http www runoob com angularjs angularjs tutorial html 这个网站有别人学习的例子 例子可以直接下载 http javahonk c
  • 服务器系统2022安装wsl2,手把手教你踩坑:老白的Docker for Windows安装初探WSL 2 backend...

    手把手教你踩坑 老白的Docker for Windows安装初探WSL 2 backend 2020 06 16 13 29 47 15点赞 63收藏 4评论 创作立场声明 老白的踩坑记录 嗨 大家好 前几日老白对Docker for W
  • 【Vue】从0-1全系列Vue教程带你启航!

    hello 我是小索奇 Vue js 已经备好文章 预更新哈 涵盖 Vue2 和 Vue3 涵盖代码示例 拓展内容 图解 疑难解答 让大家用最通俗的方式来学会 Vue 本系列会考虑到新手 会由浅入深 即使你是老玩家 也可以收藏备用 其中有很
  • offer审批被刷的可能性_HR辛辣提问:“你目前有几个offer?”聪明人会怎么回答?...

    很多同学在面试中 都可能被HR辛辣的问题突袭 当HR突然冷不丁问你一句 你目前手里有几个offer 回答这个问题的最佳方式 是如实回答 还是有选择地回应呢 最怕空气突然安静 今天有见就教你几种方法 01没有offer 没有 就说没有 可以说
  • SpringMvc Controller中几种参数的绑定

    1 SpringMVC默认支持的绑定类型有 2 HttpServletRequest对象 通过request对象可以获取参数信息 3 HttpServletResponse对象 通过response对象可以处理响应信息 4 HttpSess