Spring MVC学习之——如何接收请求传过来的参数

Spring MVC接收请求的参数

Springmvc中,接收页面提交的数据是通过方法形参来接收:

  • 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参

  • springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换器)在特殊情况下需要自定义converter,如对日期数据

1.少量参数(基本数据类型)

直接接收即可

案例:
controller

@Controller
@RequestMapping("/account")
public class AccountController {@RequestMapping("/findAccount5")public String findAccount5(String username,Model model){model.addAttribute("msg", username);return "success";}@RequestMapping("/findAccount6")public String findAccount6(String username,Integer age,Model model){model.addAttribute("msg", username+" "+age);return "success";}
}

jsp中的超链接

<a href="/account/findAccount5?username=eric">参数接收-基本数据类型</a>
<a href="/account/findAccount6?username=eric&age=22">参数接收-多个基本数据类型</a>

2. POJO类型参数绑定

  • 编写pojo

    public class Account implements Serializable {private Integer id;private String name;private Float money;private Address address;//省略get set toString方法}
    
    public class Address implements Serializable {private String provinceName;private String cityName;//省略get set toString方法}
    
  • 编写controller

    package com.by.controller;import com.by.pojo.Account;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;@Controller
    @RequestMapping("/account")
    public class AccountController {@RequestMapping("/saveAccount")public String saveAccount(Account account, Model model){model.addAttribute("msg", account);return "success";}
    }
    
  • 在index.jsp里面添加表单

    <form action="account/saveAccount" method="post">账户名称:<input type="text" name="name"><br/>账户金额:<input type="text" name="money"><br/>账户省份:<input type="text" name="address.provinceName"><br/>账户城市:<input type="text" name="address.cityName"><br/><input type="submit" value="保存">
    </form>
    

3. restful

  • restful概述:

    (Representational State Transfer,表现层状态转移):URL定位资源时,用HTTP动词(GET,POST,DELETE,PUT)描述操作

restful风格URL

  • 在Restful之前的操作:
    http://127.0.0.1/user/query?id=1 根据用户id查询用户数据
    http://127.0.0.1/user/save 新增用户
    http://127.0.0.1/user/update?id=1 修改用户信息
    http://127.0.0.1/user/delete?id=1 删除用户信息

  • RESTful用法:
    http://127.0.0.1/user/1 GET 根据用户id查询用户数据
    http://127.0.0.1/user POST 新增用户
    http://127.0.0.1/user PUT 修改用户信息
    http://127.0.0.1/user/1 DELETE 删除用户信息

  • RESTful总结:

    Restful风格就是请求url统一,根据不同的请求方式,请求不同的后台方法。如果需要携带参数,在url上使用/{}占位符。

@PathVaribale

  • 作用

    用于绑定url中的占位符。例如:/account/{id},这个{id}就是url占位符

    url支持占位符是spring3.0之后加入的,是springmvc支持rest风格url的重要标志。

  • 描述需要使用指定的请求方式来请求该方法

    @Controller
    @RequestMapping("/account")
    public class AccountController {@RequestMapping(value="/findAccount7/{id}")public String findAccount11(@PathVariable Integer id, Model model){model.addAttribute("msg", id);return "success";}
    }
    
  • 测试:在index.jsp里面定义超链接

    <a href="/account/findAccount7/123">restful传参</a><br>
    

4.JSON接收

jsp

  $.ajax({type:"post",url:"/account/findAccount",contentType:"application/json;charset=UTF-8",data:'{"id":1,"name":"张二狗","money":999.0}',success:function(data){//{id:2, name:铁柱, money:100}alert(data.name);}})

Controller

       @RequestMapping("/findAccount")@ResponseBodypublic Account findAccount(@RequestBody Account account){return account;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker安全基线检查需要修复的一些问题

一、可能出现的漏洞 限制容器之间的网络流量 限制容器的内存使用量 为Docker启用内容信任 将容器的根文件系统挂载为只读 审核Docker文件和目录 默认情况下&#xff0c;同一主机上的容器之间允许所有网络通信。 如果不需要&#xff0c;请限制所有容器间的通信。 将需要相互通…

IMX6LL|时钟控制

一.时钟控制模块 4个层次配置芯片时钟 晶振时钟PLL与PFD时钟PLL选择时钟根时钟/外设时钟 1.1晶振时钟 系统时钟来源 RTC时钟源&#xff1a;32.768KHz&#xff0c;连接RTC模块&#xff0c;进行时间计算。系统时钟&#xff1a;24MHz&#xff0c;芯片主晶振 1.2PLL和PFD倍频时钟…

【Go】A和*A在作为Receiver和接口实现上的差别

内容均来自 https://www.bilibili.com/video/BV1Eb4y1F7b9 https://juejin.cn/post/6963476381728702501 什么时候要使用指针接收器&#xff1f; 1.A很大&#xff0c;因为Go语言在执行函数时会进行参数的拷贝&#xff0c;拷贝一个大的对象和拷贝一个 指针相比代价肯定要大。 2.…

Jenkins-Pipeline

Pipeline 1 安装插件 2 新建一个 Pipline 工程 3 配置Pipeline 脚本 agent的使用可以参考这个文档 pipeline {agent anystages {stage(Build) { steps {echo Building project...}}stage(Test) { steps {echo Testing project...}}stage(Deploy) { steps {echo Deploying …

java基础之线程安全问题以及线程安全集合类

线程安全问题 当多个线程同时访问同一个临界资源时,原子操作可能被破坏,会导致数据丢失, 就会触发线程安全问题 临界资源: 被多个线程同时访问的对象 原子操作: 线程访问临界资源的过程中不可更改和缺失的操作 互斥锁 每个对象都默认拥有互斥锁, 该锁默认不开启. 当开启互斥…

Go新项目-Gin中wire的依赖注入方式实战(6)

选型Go项目过程中&#xff0c;针对依赖注入方式的分析和使用 参考资料 https://go.dev/blog/wirehttps://medium.com/dche423/master-wire-cn-d57de86caa1bhttps://toutiao.io/posts/et0t2lk/previewhttps://imlht.com/archives/223/https://lailin.xyz/post/go-training-week…

即将被AI取代的工作

这个博客 100% 是由人类而不是机器人撰写的。至少在某种程度上&#xff0c;目前仍然需要内容作家。 你的工作怎么样&#xff1f;您是否想过人工智能&#xff08;AI&#xff09;是否有可能渗透到您生活的无形本质&#xff1f;您花费数年时间获得的所有知识、技能和经验是否会因…

谈谈前端开发中的防抖和节流

本文作者为 360 奇舞团前端开发工程师 李武阳 概述 防抖和节流是前端开发中常用的函数优化手段&#xff0c;它们可以限制函数的执行频率&#xff0c;提升性能和用户体验。主要用于处理高频触发的事件&#xff0c;例如&#xff1a;用户的滚动、输入、点击和表单的重复提交等。 防…

OceanBase OBCA认证考试预约流程

【OceanBase】OBCA认证考试预约流程 - 课程体系 - 云贝教育https://www.yunbee.net/Home/News/detail/article_id/541.html 一、OBCA账号登录/注册&#xff0c;链接 https://www.oceanbase.com/ob/login/mobile?gotohttps%3A%2F%2Fwww.oceanbase.com%2Ftraining%2Fdetail%3Fle…

Windows Redis图形客户端 Another Redis Desktop Manager的简单使用教程

1、 Redis官方文档 2、 Redis国内中文版文档 3、 Redis客户端 Another Redis Desktop Manager 4、连接redis服务 我直接使用的是公司搭建好的服务。连接服务需要以下几个信息&#xff1a; HostPortPasswordSSL 5、New Key 5.1 如何创建一个Key&#xff1f; 点击New k…

从前端角度浅谈性能 | 京东物流技术团队(转载)

1 前言 自网站诞生以来&#xff0c;页面白屏时间、用户交互的响应速度等一直都是开发者关心的问题&#xff0c;这直接影响了一个网站能否为用户的浏览提供舒适的服务&#xff0c;而这种舒适度&#xff0c;直接关系着对用户的吸引力&#xff0c;毕竟谁都不能忍受一个页面长达10秒…

webassembly003 whisper.cpp的项目结构CMakeLists.txt

注&#xff1a;带星号的为非重要部分 基础配置 cmake_minimum_required (VERSION 3.5)project(whisper.cpp VERSION 1.5.0)# Add path to modules list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") # 在\cmake文件夹下还有BuildTypes.cmake&a…

Uboot-5(U-Boot源码分析1-启动第一阶段)

来源&#xff1a;朱有鹏老师的嵌入式linux核心教程 1、start.S引入 1.1、u-boot.lds中找到start.S入口 (1)、在C语言中整个项目的入口就是main函数&#xff08;这是C语言规定的&#xff09;&#xff0c;所以譬如说一个有10000个.c文件的项目&#xff0c;第一个要分析的文件就…

Go 中 slice 的 In 功能实现探索

文章目录 遍历二分查找map key性能总结 之前在知乎看到一个问题&#xff1a;为什么 Golang 没有像 Python 中 in 一样的功能&#xff1f;于是&#xff0c;搜了下这个问题&#xff0c;发现还是有不少人有这样的疑问。 补充&#xff1a;本文写于 2019 年。GO 现在已经支持泛型&am…

腾讯云 腾讯云服务器 - 腾讯云 产业智变·云启未来

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…

【工作记录】基于springboot3+springsecurity6实现多种登录方式(一)

前言 springboot3已经推出有一段时间了&#xff0c;近期公司里面的小项目使用的都是springboot3版本的&#xff0c;安全框架还是以springsecurity为主&#xff0c;毕竟亲生的。 本文针对基于springboot3和springsecurity实现用户登录认证访问以及异常处理做个记录总结&#x…

Linux miniGUI移植分析

框架介绍 常用GUI程序对比 https://www.cnblogs.com/zyly/p/17378659.html MiniGUI分为底层的GAL&#xff08;图形抽象层&#xff09;和IAL&#xff08;输入抽象层&#xff09;&#xff0c;向上为基于标准POSIX接口中pthread库的Mini-Thread架构和基于Server/Client的Mini-L…

JSONObject - 用最通俗的讲解,教你玩转 JSON 数据的解析和修改

目录 一、JSONObject 1.1、为什么要使用他&#xff1f; 1.2、应用 1.2.1、依赖 1.2.2、JSON 数据示例 1.2.3、JSON 数据的构建 1.2.4、JSON 数据的解析 一、JSONObject 1.1、为什么要使用他&#xff1f; 在还没有接触过这个东西的时候&#xff0c;一直是通过 ObjectMap…

Spring 核心之 IOC 容器学习二

基于 Annotation 的 IOC 初始化 Annotation 的前世今生 从 Spring2.0 以后的版本中&#xff0c;Spring 也引入了基于注解(Annotation)方式的配置&#xff0c;注解(Annotation)是 JDK1.5 中引入的一个新特性&#xff0c;用于简化 Bean 的配置&#xff0c;可以取代 XML 配置文件…

深度学习记录--归—化输入特征

归化 归化输入(normalizing inputs),对特征值进行一定的处理&#xff0c;可以加速神经网络训练速度 步骤 零均值化 通过x值更新让均值稳定在零附近&#xff0c;即为零均值化 归化方差 适当减小变量方差 解释 归化可以让原本狭长的数据图像变得规整&#xff0c;梯度下降的…