springMvc参数绑定

5G物理层基础知识 1、关于RB和RE (1) RB(Resource Block,资源块)频率上连续12个子载波,时域上一个slot(时隙,14个ofdm符号) (2) RE(Resource Element,资源单元)频率上一个子载波,及时域上一个ofdm符号 注意:协议规定,5G每个时隙(非扩展CP)的符号数为14个(扩展CP情况下每个时隙有12个符号),而LTE(非扩展CP)每个时隙的符号数为7个。 简单说:一个12X14的方格,大的整个叫一个RB,每一个小块叫一个RE。另外,一个RE可存放一个调制符号(mo. 阅读详情
				参数绑定
目录·
 1、SpringMVC 参数绑定·
 2、默认支持的类型
 3、基本数据类型的绑定·
 4、包装数据类型的绑定·
 5、POJO(实体类)类型的绑定
 6、复合POJO(实体类)类型的绑定·
 7、数组类型的绑定·
 8、List类型的绑定·
 9、Map类型的绑定   
     参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller ?这在实际项目开发中也是用到的最多的,那么 SpringMVC 的参数绑定是怎么实现的呢?让老夫亲手敲一下
     **1、SpringMVC 参数绑定** 
      在 SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。 
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518194014620.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21ha2VfMDM=,size_16,color_FFFFFF,t_70)  
      这里涉及到参数绑定组件,那么什么是参数组件,这里可以先理解为将请求的数据转换为我们需要的数据称为参数绑定组件,也就是参数绑定转换器。SpringMVC 内置了很多参数转换器,只有在极少数情况下需要我们自定义参数转换器。
      **2、默认支持的类型** 
       SpringMVC 有支持的默认参数类型,我们直接在形参上给出这些默认类型的声明,就能直接使用了。如下: 
       ①、HttpServletRequest 对象  
       ②、HttpServletResponse 对象 
       ③、HttpSession 对象 
       ④、Model/ModelMap 对象  
          Controller 代码:@RequestMapping("/defaultParameter")  
            public ModelAndView defaultParameter(HttpServletRequest request,HttpServletResponse response, HttpSession session,Model model,ModelMap modelMap) throws Exception{     
               		request.setAttribute("requestParameter", "request类型");        							response.getWriter().write("response");     
                  		session.setAttribute("sessionParameter", "session类型");        //ModelMap是Model接口的一个实现类,作用是将Model数据填充到request域        //即使使用Model接口,其内部绑定还是由ModelMap来实现

model.addAttribute(“modelParameter”, “model类型”);
modelMap.addAttribute(“modelMapParameter”, “modelMap类型”);
ModelAndView mv = new ModelAndView();
mv.setViewName(“success”);
return mv;
}
表单代码

request:${requestParameter} session:${sessionParameter} model:${modelParameter} modelMap:${modelMapParameter} 然后访问,页面显示如下:

在这里插入图片描述
这里我们重点说一下 Model/ModelMap,ModelMap是Model接口的一个实现类,作用是将Model数据填充到request域,即使使用Model接口,其内部绑定还是由ModelMap来实现
3、基本数据类型的绑定 
 哪些是基本数据类型,我们这里重新总结一下:
 一、byte,占用一个字节,取值范围为 -128-127,默认是“\u0000”,表示空
 二、short,占用两个字节,取值范围为 -32768-32767
 三、int,占用四个字节,-2147483648-2147483647
 四、long,占用八个字节,对 long 型变量赋值时必须加上"L"或“l”,否则不认为是 long 型
 五、float,占用四个字节,对 float 型进行赋值的时候必须加上“F”或“f”,如果不加,会产生编译错误,因为系统自动将其定义为 double 型变量。double转换为float类型数据会损失精度。float a = 12.23产生编译错误的,float a = 12是正确的
 六、double,占用八个字节,对 double 型变量赋值的时候最好加上“D”或“d”,但加不加不是硬性规定
 七、char,占用两个字节,在定义字符型变量时,要用单引号括起来八、boolean,只有两个值“true”和“false”,默认值为false,不能用0或非0来代替,这点和C语言不同
 我们以 int 类型为例:  JSP 页面代码:
 
 
 
 
   Controller 代码:
   @RequestMapping("/basicData")
   public void basicData(int username){
   System.out.println(username);//10
    }
    结果是 打印出了表单里面的 value 的值。
     注意:表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑定。那么如果不一致呢?我们使用 @RequestParam 注解来完成如下: 
      JSP页面代码不变,
      保持原样,Controller 代码如下
      在这里插入图片描述
      使用注解 @RequestParam ,我们可以使用任意形参,但是注解里面的 value 属性值要和表单的name属性值一样。
      问题:我们这里的参数是基本数据类型,如果从前台页面传递的值为 null 或者 “”的话,那么会出现数据转换的异常,就是必须保证表单传递过来的数据不能为null或”",所以,在开发过程中,对可能为空的数据,最好将参数数据类型定义成包装类型,具体参见下面的例子。 
      包装类型如Integer、Long、Byte、Double、Float、Short,(String 类型在这也是适用的)这里我们以 Integer 为例  Controller 代码为:
      在这里插入图片描述
      和基本数据类型基本一样,不同之处在于,表单传递过来的数据可以为null或”",以上面代码为例,如果表单中num为”",或者表单中无name这个input,那么,Controller方法参数中的name值则为null。
      5、POJO(实体类)类型的绑定 
       User.java

       package com.ys.po;
        import java.util.Date;
        public class User { private Integer id;
        private String username;
        private String sex;
        private Date birthday;
        public Integer getId() { return id; }
        public void setId(Integer id) { this.id = id; } public String getUsername() { return username; }
        public void setUsername(String username) { this.username = username == null ? null : username.trim(); }
        public String getSex() { return sex; }
        public void setSex(String sex) { this.sex = sex == null ? null : sex.trim(); }
        public Date getBirthday() { return birthday; }
        public void setBirthday(Date birthday) { this.birthday = birthday; }
        }  
JSP页面:注意输入框的 name 属性值和上面 POJO 实体类的属性保持一致即可映射成功。
        截了了个图:代码没法识别
        在这里插入图片描述
        注意看:这里面我们数据都写死了,直接提交。有Integer类型的,String类型的,Date类型的。  Controller :
        @RequestMapping("/pojo")
         public void pojo(User user){
         System.out.println(user); }
         我们在上面代码打个断点,然后输入URL,进入到这个Controller中:
         在这里插入图片描述
          上面是报错了,User.java 的birthday 属性是 Date 类型的,而我们输入的是字符串类型,故绑定不了
          那么问题来了,Date 类型的数据绑定失败,如何解决这样的问题呢?这就是我们前面所说的需要自定义Date类型的转换器。 
           ①、定义由String类型到 Date 类型的转换器

在这里插入代码片
package com.ys.util; 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; 
import org.springframework.core.convert.converter.Converter;
 //需要实现Converter接口,这里是将String类型转换成Date类型
 public class DateConverter implements Converter<String, Date> {   
   @Override  
     public Date convert(String source) {     
        //实现将字符串转成日期类型(格式是yyyy-MM-dd HH:mm:ss)    
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        try {            return dateFormat.parse(source);        } 
            catch (ParseException e) {  
                      // TODO Auto-generated catch block   
                               e.printStackTrace();        }      
                                 //如果参数绑定失败返回null       
                                  return null;    } }
                                  终于学会插入代码块了;

②、在 springmvc.xml 文件中配置转换器`

在这里插入代码片
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>    
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">        <property name="converters">      
      <!-- 自定义转换器的类名 -->       
           <bean class="com.ys.util.DateConverter"></bean>    
               </property>  
       </bean>

输入 URL,再次查看Controller的形参:
  在这里插入图片描述
  6、复合POJO(实体类)类型的绑定 
   这里我们增加一个实体类,
   ContactInfo.java

在这里插入代码片
package com.ys.po; public class ContactInfo {  
  private Integer id;  
  private String tel;  
  private String address;   
    public Integer getId() { return id;   }
 	public void setId(Integer id) {  this.id = id;}   
     public String getTel() {  return tel; }   
     public void setTel(String tel) { this.tel = tel == null ? null : tel.trim();}   
     public String getAddress() { return address;}  
      public void setAddress(String address) {this.address = address == null ? null : address.trim();}}
      

然后在上面的User.java中增加一个属性 private ContactInfo contactInfo;

在这里插入图片描述
JSP 页面:注意属性name的命名,User.java 的复合属性名.字段名
在这里插入图片描述
Controller

在这里插入图片描述
User对象中有ContactInfo属性,但是,在表单代码中,需要使用“属性名(对象类型的属性).属性名”来命名input的name。

7、数组类型的绑定 
 需求:我们查询出所有User 的信息,并且在JSP页面遍历显示,这时候点击提交按钮,需要在 Controller 中获得页面中显示 User 类的 id 的所有值的数组集合。 
  JSP 页面:注意用户id的name值定义为 userId
  在这里插入图片描述
  Controller.java
  在这里插入图片描述
   8、List类型的绑定 
    需求:批量修改 User 用户的信息 
    第一步:创建 UserVo.java,封装 List 属性

在这里插入代码片
package com.ys.po; 
import java.util.List;
 public class UserVo {   
      private List<User> userList;   
      public List<User> getUserList() {        return userList;    }  
      public void setUserList(List<User> userList) {this.userList = userList;}} 
      第二步:为了简化过程,我们直接从 Controller 中查询所有 User 信息,然后在页面显示
        Controller
      @RequestMapping("selectAllUserAndList")  
        public ModelAndView selectAllUserAndList(){    
            List<User> listUser = userService.selectAllUser();    
            ModelAndView mv = new ModelAndView(); 
            mv.addObject("listUser", listUser); 
            mv.setViewName("list");  
             return mv;    }

JSP 页面

在这里插入图片描述
第三步:修改页面的值后,点击提交

在这里插入图片描述
首先在 UserVo 里面增加一个属性 Map<String,User> userMap

在这里插入图片描述
 第二步:JSP页面,注意看 输入框 name 的属性值 
 在这里插入图片描述
 第三步:Controller 中获取页面的属性
 在这里插入图片描述
 各位老哥拿走
 很详细

2025年软件测试职业院校技能大赛—ERP管理平台-采购管理采购入库模块测试用例 竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。 阅读详情

相关推荐

例题讲解拉格朗日乘子法、线性可分支持向量机(SVM)的推导

支持向量机(Support Vector Machine, SVM)的简单推导及例题

zzzssszzzzsz的博客 5683

SpringMVC之参数绑定

1、参数绑定过程 springmvc参数绑定过程 – 从客户端请求key/value数据,经过参数绑定,将 key/value数据绑定到controller方法的形参上。 – springmvc中,接收页面提交的数据是通过方法形参来接收 ,而不是在controller类定义成员变量接收。 2、默认支持的类型 处理器形参中添加如下类型的参数,处理适配器会默认识别并 进行赋值。 – HttpServletRequest • 通过request对象获取请求信息 – HttpServletResponse

weixin_49251493的博客 2895

Qt Installer Framework4.6.1的最基础使用1(win10+离线安装包 )

因工作需要,win程序发布后,打包成一可执行exe文件,且兼容win7系统笔者记录了一些关键要点,供有需要的小伙伴使用。

aggs1990的专栏 904

springmvc(九) 参数绑定

springmvc参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。 springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变量接收!!!! 默认支持的类型 直接在controller方法形参上定义下边类型的对象,就可以使用这些对象。在参数绑定过程中,如果遇到下边

北风 746

远程桌面连接失败?手把手教你解决CredSSP加密Oracle漏洞(Win10/Win11通用)

本文详细解析了Windows远程桌面连接因CredSSP加密Oracle漏洞安全更新导致的“身份验证错误”问题。文章从原理入手,提供了通过组策略编辑器(适用于专业版)和注册表编辑器(适用于家庭版)两种核心解决方案,指导用户将安全策略调整为推荐的“缓解”模式,以在保障安全的前提下恢复连接,并给出了高级脚本处理与安全最佳实践。

u6v7w8x的博客 724

【笔记软件obsidian】从入门到精通

目录 一、前言 二、下载及安装 三、【选修】ios用户如何通过iCloud进行三平台同步 四、基本Markdown语法 五、【选修】插件的下载及安装方式 六、

patrick的博客 9万+

SpringMVC参数绑定

Spring MVC 提供了现成的。

xiaotu的博客 1049

robomimic实验复现全流程指南:从数据集下载到训练视频生成

本文提供了RoboMimic实验复现的完整实战指南,重点解析了从数据集下载、配置文件定制到模型训练与评估的全流程。以tool_hang任务为例,详细说明了环境准备、数据获取、训练监控及视频生成等关键步骤,并针对常见问题给出了排查方案,帮助研究者高效完成机器人模仿学习实验的闭环验证。

2w3e4r5t6y的博客 1033

SpringMVC数据绑定

在客户端向服务端发送请求的过程中,可能有参数,此时我们需要在处理器方法的形参获取此参数。连接的过程中就是数据绑定。传递给DataBinder,DataBinder调用ConversionServlet进行数据类型转换和格式化,并把。一般情况传输的数据较多,所以需要用类将其封装,形参只要用对象去接收就好,不用写太多的简单数据类型。因为Json数据解析速度更快,占用空间更小,所以一般开发用Json数据传输。springmvc没有帮我们把字符串转为日期,所以需要自己配置。形参是java的简单数据类型。

weixin_44957983的博客 1616

PCB工程师必看:别再搞错1078玻纤布的Dk了,手把手教你算等效介电常数

本文为PCB工程师提供了1078玻纤布等效介电常数(Dk)的详细计算指南,帮助解决高速设计中的信号完整性问题。通过解析玻纤布结构、混合介质理论和实战计算方法,指导工程师准确设置EDA工具参数,避免常见的Dk计算误区,提升设计精度和仿真准确性。

weixin_42546392的博客 399

【coze实战】基于Coze的公众号图文自动化生成工作流实战解析

【coze实战】基于Coze的公众号图文自动化生成工作流实战解析

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1万+

springMVC参数绑定

默认支持的参数类型 处理器形参中添加如下类型的参数处理注解适配器会默认识别并进行赋值。1 HttpServletRequest通过request对象获取请求信息2 HttpServletResponse通过response处理响应信息3 HttpSession通过session对象得到session中存放的对象4 Model通过model向页面传递数据,如下://调用service查询商品信...

weixin_34337265的博客 226

Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】

本文章是Unity零基础到入门专栏的系列文章。 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习! 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

努力前行,总会成为自己心中的那道光 8万+

SpringMVC的参数绑定原理

摘要本文从源码层面简单讲解SpringMVC的参数绑定原理SpringMVC参数绑定相关组件的初始化过程在理解初始化之前,先来认识一个接口HandlerMethodArgumentResolver方法参数解析器接口,这个接口是SpringMVC参数解析绑定的核心接口。不同的参数类型绑定都是通过实现这个接口来实现。也可以通过实现这个接口来自定义参数解析器。这个接口中有如下两个方...

weixin_34216036的博客 2406

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【SSM - SpringMVC篇】03 - SpringMVC的参数绑定 - 参数自动绑定 - javabean对象参数绑 - 嵌套bean参数绑定

创建视图解析器 由于SpringMVC中默认提供的三大组件有可能过时,我们可以手动设置这三大组件 1. 手动一个个的设置处理器映射器(不推荐) <!--方式1:手动一个个设置 --> <!-- 处理器映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!--处理器适配器--> &l

Java小皮孩 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringMVC_请求参数的绑定

/** * 请求参数绑定 */ @Controller @RequestMapping(value = "/param") public class ParamController { } 绑定的机制 我们都知道,表单中请求参数都是基于 key=value 的,SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。 <h3>请求...

底层码农 6673

springmvc参数绑定

springmvc参数绑定 1.spring参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。 springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变量接收!!!! 2.默认支持的类型 直接在controller方法形参上定义下边类型的对象,就可以使用这些对象。 在参数绑定过程中,如果遇到下边类型直接进行绑定。 1).HttpServletRequest 通过request对象获取

shejiataoBlog 878

springMVC 参数绑定

1.SpringMVC 参数绑定: 在 SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。 参数绑定使用到3个注解: @RequestParam : 获取请求参数 ...

weixin_42325327的博客 3209

SpringMVC 参数绑定详解

概述记得之前跟前端同事联调接口的时候,后端springMVC需要接收数组类型的参数,然后跟前端说需要传数组类型过来。后来前端童鞋传了数组,但是后端接收不成功,联调失败。那时候由于时间关系没有仔细研究这块,当时想了个办法就是前端传一个json字符串,后端换成接收json字符串然后转成需要的数组对象。这显然不是一种好的做法,框架帮我们做好的事我们没有用上,还平白多了两次数据的转换。所以今天花时间研究了下

zw19910924的专栏 2581

springMVC参数绑定的几种方式

1,默认支持的类型 SpringMVC 有支持的默认参数类型,我们直接在形参上给出这些默认类型的声明,就能直接使用了。如下: ①、HttpServletRequest 对象 ②、HttpServletResponse 对象 ③、HttpSession 对象 ④、Model/ModelMap 对象 ModelMap是Model接口的一个实现类,作用是将Model数据填充到request域 , 即使使用Model接口,其内部绑定还是由ModelMap来实现 @RequestMapping("/defaultPa

斧头湖懒客 3097

springmvc 的参数绑定

1.springmvc的参数绑定的过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。 springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变更接收!!!!(单例的哦) 直接在controller方法形参上定义下边类型的对象,就可以使用这些对象。在参数绑定过

李卫康的博客 1274

SpringMVC 请求参数的绑定

文章目录 注:这篇博客主要讲的是 SpringMVC 中请求参数的绑定,里面涉及的 环境搭建以及代码 已经在上一篇博客中给出(SpringMVC环境搭建)。

Zzz5270的博客 813

SpringMVC参数绑定、 参数绑定分类

参数绑定 概念:参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据 参数绑定组件 将请求的数据转换为我们需要的数据称为参数绑定组件,也就是参数绑定转换器 参数绑定分类 1、默认支持类型 1、HttpServletRequest 对象 2、HttpServletResponse 对象 3、HttpSession 对象 4、Model/ModelMap 对象 Controller 代码: @RequestMapping("/test") public ModelAndView t.

lady88888888的博客 431

SpringMVC请求参数的绑定

在 Web 开发中,表单提交、URL 传参等请求数据都是 k=v 格式(例如 username=haha&password=123)。SpringMVC 的参数绑定就是将这些请求数据自动映射到控制器方法的参数中,无需手动解析 Request 对象,极大简化了数据获取流程。// 主实体类:User// 用户名// 年龄// 嵌套引用类型(地址信息)// 集合类型(多个地址)// 全参构造、无参构造(可选,建议保留)// Getter + Setter(必须!

m0_62724751的博客 781

SpringMVC 请求参数绑定

介绍 Spring MVC 绑定请求头参数。

Jacks丶的博客 688
上一篇: spring-mvc框架的搭建
下一篇: 映射和请求参数乱码
make_03
博客等级 码龄7年 0粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值