SSM整合1

请求参数

(这里的形参数据都是SpringMvc注入的)

controller里的方法不是我们来调用的 是由SpringMvc的前端控制器所调用的(前端控制器调用了处理器 由处理器和适配器去调用我们controller里的方法),controller里的方法叫handler->处理器

SpringMVC的Controller方法形参数据类型:
Controller方法(处理器)是SpringMVc调用,形参的值由SpringMVC注入(传递参数)

 javaWeb核心的api接口对象

  • HttpServletRequest请求对象
  • HttpServletResponse 响应对象
  • HttpSession session对象
  • Model/ModelMap Model是一个接口,ModelMap是一个接口实现。作用:将model数据填充到request域。
  • ps:如果只是往域中存数据推荐用model/modelmap

kv键值对是我们的请求参数  之前写的通过?传值 表单传值都是kv键值对

而现在在springmvc里面使用conventer组件把数据绑定到我们的方法形参实现数据的传输

如果只是往request添加数据,推荐使用Model,而不直接注入Request对象,与JavaWeb解耦

 如果调用request对象其他方法,只能注入Request对象

TestController.java

1.参数注入

方法返回一个逻辑视图名

@controller:交给spring管理

@RequestMapping:加上前缀  然后这个方法呢可以注入javaWeb的核心api对象

以后写SpringMvc写javaWeb的东西东西时注入就行了

只有不转发之后才能展示

(写这个的用处:后期写的是java对象 用通过这种方式写数据)

请求参数 客户端请求参数时基于key/value对的方式 

当然了客户端请求参数:还可通过以json形式的方式

如果是key-value :我们只要在自己的方法形参定义参数来接收这个请求参数就可以了

前端传过来的时字符串类型 跨平台数据传输都是字符串格式的

字符串

但是对于这种数据我们需要一种协议、格式  来对我们我们的参数的值进行一个说明

参数的类型

1.简单数据类型 保证类型 int String 日期

2.自定义类类型 

3.集合类型

4.数据类型

简单数据类型

要求形参参数名与请求参数名一样(不一样会映射失败)

kv键值对用?传值

写一个controller我来接受这些传过来的参数

记得上面说的- >我们只要在自己的方法形参定义参数来接收这个请求参数就可以了

但是要求:要求形参参数名与请求参数名一样 spring可以进行数据类型转换

这是效果:而且他还会把String数据类型的id转换成int类型

特殊问题:如果是日期呢?

405:你发送的请求时post请求 但是我只能处理get请求

404:文资源找不到

400:参数有问题 错误的请求

原因:他无法解析日期 导致不能进行类型转换

如果前端传递时一个日期字符串, Controller方法使用日期类型接收,默认转换失败,报400错误

对日期类型,需要自定义转换器:

  1. 全局的日期转换器类,编写一个转换器类,在springMVC的配置文件进行配置
  2. 使用SpringMVC提供的日期转换注解,局部

方法一:全局的日期转换器类,编写一个转换器类,在springMVC的配置文件进行配置

1.实现接口

这个实现类交给spring管理 @Componnet

扫描这个包:

注册到注解驱动上

转换服务工厂bean  -> 

beans不用加扫描配置了  以及不用@Componnet了

添加一个bean

配置一个转换服务的工厂beanConversionServiceFactoryBean 需要在我们项目中导入这个依赖

这个类在spring-context-support

外部bean配置

内部bean配置

使用条件:只在外部bean内部使用或者需要其他地方使用

转换器此时已经注入到我们的转工厂服务bean 但是最终转换器是SpringMVC的前端控制器

它在请求参数传过来时,调用自己的conventer 把字符串转换为日期类型

下一步就是在SpringMVC的注解驱动上注册转换器服务 ConversionServiceFactoryBean

 优点:整登项目只需要配置一次,整个项目的所有日期类型都可以通过该转换器

缺点:配置繁琐

方法二:使用SpringMVC提供的日期转换注解,局部

去掉

把请求参数的日期字符串转换为Date类型

自定义类类型   pojo

登录页面:login.jsp

java写一个User对象 而你前端表单提交的数据可以映射到我这个User对象对应的属性上去

SpringMVC帮助你创建对象

之前方法形参名要与前端的请求参数名一样,如果不一样会返回null 映射不成功 现在我要求不一样

如果请求参数名与形参名不一样 默认会映射失败 使用注解进行手动映射 @RequestParam 而且这个注释还必要要传值来进行映射 不然会报错(不同于之前的)

@RequestParam注解的属性

  • name/value;请求参数名
  • required:是否必须有这个参数,默认值: true,如果没有这个参数,报错,如果false,如果没有参数,不报错,参数值: null
  • defaultValue:默认值

id不能重复 for的作用是关联id 

表单里的数据,我不能一个一个的去接收  就会很麻烦

springmvc提供了对象类型->类类型

此时SpringMVC会自动的把请求参数名映射到对应的属性名上去了,要求请求参数名与属性名一样就行了

改一下css样式:

注册不能时get请求 密码啥的都暴露了 用post

集合类型

多个User对象

inti()方法报错:没有构造方法

mybatis当中含有的包装类型  -> vo(前端传过来的)

数据的接收 需要我们后台服务器经行一个数据的封装来对接

拿到数据users  然后调用service里的方法把数据添加到我们的数据了

以后开发中,批量修改和批量添加需要时,可以用到这个。

后台Controller,把集合属性封装到一个类中 作为该类的一个属性

数组类型:

批量删除,批量查询(根据一组id)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spring boot 热部署

相信小伙伴们在日常的开发中,调试代码时,免不了经常修改代码,这个时候,为了验证效果,必须要重启 Spring Boot 应用。 频繁地重启应用,导致开发效率降低,加班随之而来。有没有什么办法&#xff0…

实现一个计算机

图片&#xff1a; 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>body {padding: 20px;font-family: Arial;}.calc-wrap {width: 300px;bor…

Threejs_13 聚光灯和点光源的使用

聚光灯就如同手电筒一样&#xff0c;点光源就如同一个电灯泡甚至是萤火虫那样。如何使用他们呢&#xff1f; 我们还是一样&#xff0c;先做一个小球和一个平面&#xff0c;用来展示光线。并且加入基本的环境光。 // 做一个球体 const SphereGeometry new THREE.SphereGeomet…

Vue中使用Echarts实现数据可视化

文章目录 引言一、安装Echarts二、引入Echarts三、创建图表容器四、初始化Echarts实例五、配置图表选项和数据六、实现图表更新七、Vue实例代码结语我是将军&#xff0c;我一直都在&#xff0c;。&#xff01; 引言 接着上一篇内容&#xff0c;我将继续分享有关数据可视化的相…

docker安装mysql挂着目录和mysql备份和恢复

第一&#xff0c;镜像拉取&#xff0c;运行镜像并挂载目录&#xff0c;尝试挂bin下&#xff0c;启动不了&#xff0c;不知为啥 docker run --privilegedtrue -itd --namevmysql -p 3306:3306 -v /home/vmysql:/home/vmysql -e MYSQL_ROOT_PASSWORD123456 mysql&#xff08;图…

为何设计师都在用这个原型样机资源网站?

谈论原型样机素材模板&#xff0c;这个话题对设计师来说如同老朋友一般熟悉。设计师们在创作完毕后&#xff0c;为了更淋漓尽致地展示他们的设计成果&#xff0c;通常会将其放置在真实的样机素材模板中。这种原型样机素材可以让设计作品迅速且清晰地呈现在真实环境中。找到一个…

福州大学《嵌入式系统综合设计》实验五:图像裁剪及尺寸变换

一、实验目的 在深度学习中&#xff0c;往往需要从一张大图中裁剪出一张张小图&#xff0c;以便适应网络输入图像的尺寸&#xff0c;这可以通过bmcv_image_crop函数实现。 实践中&#xff0c;经常需要对输入图像的尺寸进行调整&#xff0c;以适用于网络输入图片尺寸&#xff0…

计网(复习自用)

计算机网络 1.概述 1.1概念 含义 计算机网络&#xff1a;是一个将分散的。具有独立功能的计算机系统&#xff0c;通过通信设备和线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 简单点说&#xff0c;计算机网络是互联的&#xff0c;自治的计算机集…

低成本打造便携式无线网络攻防学习环境

1.摘要 一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连…

碳化硅MOS/超结MOS在直流充电桩上的应用-REASUNOS瑞森半导体

一、前言 直流充电桩是新能源汽车直流充电桩的简称&#xff0c;一般也被叫做“快充”。直流充电桩一般与交流电网连接&#xff0c;可作为非车载电动汽车的动力补充&#xff0c;是一种直流工作电源的电源控制装置&#xff0c;可以提供充足的电量&#xff0c;输出电压和电流可以…

Windows日常故障自我排查:用工具eventvwr.msc(事件查看器)分析问题故障

windows故障排查方法一&#xff1a; 工具用法 系统故障问题时&#xff0c;找不到解决方法 首先&#xff0c; 在搜索栏输入&#xff1a; 事件查看器(eventvwr.msc) 打开程序 根据程序找到程序运行的LOG 根据程序Operational筛选出错误日志&#xff1a; 日志中找错误原因&…

itext - PDF模板套打

项目需求&#xff1a;获取列表数据之后直接将数据生成一个pdf。因此需要使用到 itext 对pdf进行直接操作。 环境配置 需要为pdf添加文字域&#xff0c;因此需要安装Adobe Acrobat 准备一个空的PDF文件&#xff0c;如果有现成的模板更好 依赖配置&#xff0c;我们使用itext的7版…

揭示卡尔曼滤波器的威力

一、说明 作为一名数据科学家&#xff0c;我们偶尔会遇到需要对趋势进行建模以预测未来值的情况。虽然人们倾向于关注基于统计或机器学习的算法&#xff0c;但我在这里提出一个不同的选择&#xff1a;卡尔曼滤波器&#xff08;KF&#xff09;。 1960 年代初期&#xff0c;Rudol…

基于H1ve一分钟搭好CTF靶场

写在前面 ◉ ‿ ◉ 上一篇文章给大家详细介绍了基于H1ve搭建CTF靶场&#xff0c;以及过程中可能遇到的报错及解决方法&#xff0c;那么这篇文章&#xff0c;我总结了一下&#xff0c;将不会遇到报错的方法给到大家&#xff0c;但是前提是你的服务器最好是一个全新的哦~~~ 我…

小程序订阅消息

wx.requestSubscribeMessage({tmplIds: [2IdqlWrqSbjAurzIuW8imeK-ftS8gbhYdZ0icdE],success(res) {console.log(res);// 处理用户授权结果},fail(err) {console.error(err);// 处理授权请求失败}});

淡入淡出transition: right 1s

transition: right 1s; //重点直接改变right值 操作过快 这里用该方法实现1s内淡入淡出 达到效果目标

20230511 Windows Ubuntu vscode remote-ssh 连接配置

参考 &#xff1a; VSCode SSH 连接远程ubuntu Linux 主机 VSCode通过Remote SSH扩展连接到内网Ubuntu主机 Ubuntu 安装 sudo apt-get install openssh-server vscode: 安装remote-ssh 插件 连接到服务器IP 免密登录的公钥密钥传递用filezillaUbuntu 和 Windows 文件互传 …

ios(swiftui) 画中画

一、环境 要实现画中画 ios系统必须是 iOS14 本文开发环境 xcode14.2 二、权限配置 在项目导航器中单击项目&#xff0c;然后单击Signing & Capabilities。单击 Capabilit搜索Background Modes&#xff0c;然后双击将其添加为功能。在新添加的Background Modes部分&a…

chatglm3部署使用

chatglm3部署使用 1.部署2.使用3.接入微信4.vue前端 1.部署 1.首先去github下载chatglm3代码。Huggingface下载模型一直失败&#xff0c;所以用阿里的魔塔社区下载。 git clone https://github.com/THUDM/ChatGLM3.git git clone https://www.modelscope.cn/ZhipuAI/chatglm3…

SpringMVC 基础知识

学习目标 掌握基于 SpringMVC 获取请求参数与响应 json 数据操作熟练应用基于 REST 风格的请求路径设置与参数传递能够根据实际业务建立前后端开发通信协议并进行实现基于 SSM 整合技术开发任意业务模块功能 1 SpringMVC 简介 1.1 概述 1.1.1 web程序开发流程 【执行过程】…