SpringMVC接受前台传值

Easyui+springMVC传值 高校整体架构采用的是springMVC+hibernate+easyui+mysql;   这个项目前台框架使用的是easyui,初次使用这个框架还是觉得挺好上手的,有中文的官网而且还有很多已经做好的demo作为参照,基本上我们在项目开发中常用的控件在官网上都能够找到。除此之外还提供了帮助文档,可以在官网上面下载。帮助文档就具体的给出了每一种控件的方法,事件已经用法,还给出了一些简单的小例子, 阅读详情

介绍一下关于springmvc接受前台传值的方法,及涉及的一些小知识点,包括get/post请求的区别。

控制器接受前台的值的方式

路径传值

    @RequestMapping("/login/{id}")  
    public String demo(@PathVariable Long id){  
        ...
    }  

通过@PathVariable就可以接受路径/login/{id}中的id值了。

From表单传值

先介绍模拟前台和实体类:

前台:

 <form action="/login">  
用户名:<input name="name"/>  
密码:<input name="pass"/>  
<input type="submit" value="登陆">  
</form>

实体类:
这里定义实体类需要注意的是,对于基本数据类型的成员变量尽量声明成其对应的包装类型…

 public class User{  
  	private String name;  
  	private String pass;  
  	
  	// ... get,set方法和空构造,这里以免篇幅过长省略不写,实际需要写
}  
1.使用原生态的HttpServletRequest
     @RequestMapping("/login")  
    public String login(HttpServletRequest request){  
        String name = request.getParameter("name")  
        String pass = request.getParameter("pass")  
    }  
2.使用@RequestParam注解
     @RequestMapping("/login")  
    public String login(HttpServletRequest request,  
                                    String name,  
     @RequestParam("pass")String password) // 表单属性是pass,用变量password接收  
    {  
      // 对name,和password进行操作省略
    }  

这里前台form的name属性值分别为name和pass,所以此时与形参不匹配的只有pass,需要使用@RequestParam注解就可以将不匹配的匹配,然后注入值。还有使用@RequestParam时,尽量用包装类型不用基本类型,如果加一个属性required=false,如@RequestParam(value="aa", required=false) int inputNum
这样如果没有传值过来时就会将null赋值给int类型,导致报错。我在项目中使用这个required=false是在使用分页功能时,默认是不传参数的,当点击翻页时就会传参,但都是调用的同一个controller方法,此时required=false这个的作用就很有用了。
另:对于@RequestParam, get(url传值)和post都可用,注:不适用contentType为multipart/form-data。
原因(对于request.getParameter()的解释,此处对于@RequestParam有参考):
POST请求要根据表单提交数据的编码方式来确定能否使用.当编码方式是(application/x- www-form-urlencoded)时才能使用.这种编码方式(application/x-www-form-urlencoded)虽然简单,但对于传输大块的二进制数据显得力不从心.对于传输大块的二进制数这类数据,浏览器采用了另一种编码方式(“multipart/form-data”),这时就需要使用下面的两种方法:getInputStream()和getReader()。
上面两种方法获取的是Http请求包的包体,因为GET方式请求一般不包含包体.所以上面两种方法一般用于POST请求获取参数.需要注意的是:request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的,因为流只能被读一次。
这里又扯到了get/post区别了:

GET 方法

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.asp?name1=value1&name2=value2

有关 GET 请求的其他一些注释:

GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据

POST 方法

请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:

POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

有关 POST 请求的其他一些注释:

POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求

下面的表格比较了两种 HTTP 方法:GET 和 POST。

GETPOST
后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
书签可收藏为书签不可收藏为书签
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史参数保留在浏览器历史中。参数不会保存在浏览器历史中。
对数据长度的限制是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。无限制。
对数据类型的限制只允许 ASCII 字符。没有限制。也允许二进制数据。
安全性与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
可见性数据在 URL 中对所有人都是可见的。数据不会显示在 URL 中。
3.利用实体类
 public String login(User user)  
{  
   String name = user.getName();
   String pass = user.getPass();
}  

SpringMVC会自动将表单中的值与实体类中的属性进行匹配,自动注入形参的对象中。如果与实体类的属性不匹配的话,是传不了的。

springmvc中ModelAndView中传值前台无法得到的问题 今天碰到了一个springmvc中ModelAndView传值前台el表达式获取不到值的问题前台jsp进行判断后台Controller中出现的异常现象为页面死循环,得不到值,后台想到可能是逻辑有问题了,request的作用域为请求一次,当subList为空时跳进getSubList.action的同时schList便为空,因为request的作用域为请求一次,所以同理,schList为空时跳进ge... 阅读详情

相关推荐

详解SpringMVC注解版前台向后台传值的两种方式

本篇文章主要介绍了详解SpringMVC注解版前台向后台传值的两种方式,具有一定的参考价值,有兴趣的可以了解一下。

SpringMVC常用的请求传参和相应传值方式

请求传参的方式有六种常用的有RequestParam注解和对象传参: 情况一:最传统的方式,方法参数中带入request,通过request.getParameter("参数名"),再封装到JavaBean中. 情况二:简单类型参数和RequestParam注解. 一:如果请求参数和Controller方法的形参同名. 可以直接接收. 二:如果请求参数和Controller方法的形参不同名...

Hard_farmer的博客 741

网课、网页视频倍速播放简单脚本

一个简单的网页视频倍速脚本

huazn612的博客 1万+

SpringMvc--前端传值&控制器响应

前端传递数值到后端(控制器)主要有三种方式,分别是请求行传值、请求头传值、请求体传值,下面将根据不同的传值方式分别进行梳理与讲解 目录 一、请求行: 1.1 请求行传值 1.2 控制器接受数据 (请求行) 1.3 响应请求并传递 二、请求头: 2.1 请求头传值 2.2 控制器接受数据 (请求头) 2.3 响应请求并传递 三、请求体: 3.1 请求体传值 3.2 控制器接受数据 (请求体) 3.3 响应请求并传递 一、请求行: 1.1 请求行传值 ...

WuHuaSen的博客 1263

ML307A模组通过MQTT协议接入OneNET平台的AT指令全解析

本文详细解析了ML307A模组通过MQTT协议接入OneNET平台的完整AT指令流程。从平台侧的产品创建、设备添加,到核心难点连接密钥的计算方法,再到模组侧的基础网络附着、MQTT连接配置、数据收发及调试排错,提供了手把手的实战指南,帮助开发者快速实现物联网设备上云。

weixin_29240711的博客 495

ESP32-CAM 赋能 AI 视觉巡检小车:自主避障与目标追踪实现全解析

本文基于 ESP32-CAM 实现了低成本 AI 视觉巡检小车的核心功能,硬件成本<100 元,兼顾自主避障与目标追踪。算法升级:移植 YOLOv5nano 量化模型(INT8),提升目标检测精度(如识别巡检场景中的 “异常物体”“人员”);无线拓展:通过 MQTT 协议将巡检图像、距离数据上传到阿里云 / 腾讯云,实现远程监控;多传感器融合:增加温湿度(DHT11)、红外测温(MLX90614)模块,扩展巡检维度;路径规划:结合 SLAM 算法,实现自主建图与路径巡检。

weixin_42300449的博客 368

@requestMapping参数详解

对应项目jsp位置则是一级路径对应一级文件目录。 如url为/default/index对应项目中webapp/default/index.jsp RequestMapping注解有六个属性,下面我们把她分成三类进行说明。 【1】value, method value:指定请求的实际地址,指定的地址可以是URI Template 模式; method: 指定请求的method类型, GET、POST、PUT、DELETE等; 【2】consumes,produces consumes: 指定处理请求的提

m0_69523172的博客 4049

MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二)

表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。

qq_36130719的博客 413

SpringMVC传递数据给页面前端的方式

SpringMVC传递数据给页面前端的常见方式有如下几种: 传统方式:三大作用域.setAttribute,在转发到页面,在页面中就可以取出数据,但是这种只支持同步请求 /** * 传统方式 * @param req * @param resp * @throws ServletException * @throws IOException */ @Reque...

zb201666的博客 3509

8-bit量化在YOLOv11中的部署实践-(使用PTQ、QAT量化技术实现模型体积压缩和推理加速)

本文系统介绍了YOLOv11模型量化技术,主要包括三个核心部分:首先阐述模型量化的基础理论,包括量化分类、数学原理和性能影响;其次分析YOLOv11架构特点及其量化敏感层;最后详细讲解训练后量化(PTQ)的具体实现流程。研究表明,8-bit量化可使YOLOv11模型大小缩减至1/4,推理速度提升1.7-2.3倍,精度损失控制在1%以内。文章特别强调了校准算法选择(如最小最大值法和KL散度法)对量化效果的关键影响,并提供了完整的代码实现示例,为YOLOv11的高效部署提供实用指导。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1629

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 186

关于SpringMVC前后端传值总结

GET请求参数通常是通过查询参数(query parameters)的形式附加在URL后,或者作为路径变量(path variables)嵌入在URI路径中。如果查询参数type与方法的名称相同,则直接将web传入type参数。如果没有传入相应的参数的话,那么框架会把该形参设置为默认值。如果在参数上加入了@RequestParam注解的话,并且没有指定它的required属性为false(required默认为true代表必须提供该参数),如果前端没有传递该参数的话会报错!

qq_21506765的博客 1462

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

亲爱的同学,毕设是不是让你既期待创新又担心技术门槛?如果你的毕设方向是计算机视觉、智能检测,那这个绝对能成为你的“毕设王牌”。从数据准备到界面开发,我会把整个项目拆成“傻瓜式”步骤,让你能一步步做出属于自己的毕设成果。

know_F0727的博客 106

SpringMVC后台接受前台传值的方法

1.HttpRequestServlet 接收前台传值 [java] view plain copy print? @RequestMapping("/go5")      public String hello5(HttpServletRequest request){          String name=request.getParameter("u

傾城如夢的专栏 1681

C#上位机性能优化全攻略:彻底解决界面卡顿+多线程死锁+PLC数据延迟,产线实测稳定运行2年

一开始我们用的是网上找的零散优化代码,根本满足不了要求,后来花了2个月的时间,把之前27条产线的代码整理、重构、优化,做了一套这套方案上线后,连续稳定运行2年零3个月:界面响应时间稳定在50ms以内,多线程死锁率持续为0,PLC数据延迟稳定在150ms以内,系统可用率≥99.99%,帮客户一年省下了超过480万的停线损失、罚款损失和人工成本,客户第二年就把剩下的22条产线也全部交给我们做了,还介绍了3家同行。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 294

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

springMVC接受前台传值

今天,用ajax向springMVC的控制器传参数,是一个json对象。({"test":"test","test1":"test1""test2":"test2"})开始的想法是用一个对象来接收这个json对象。但是又不知道具体用什么对象,开始用了一个Object,名字和json对象属性名相同,但是得不到 @RequestMapping("/test")public void test(Ht...

weixin_34174322的博客 102

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java前台传值_Springmvc如何实现向前台传递数据

1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递;①其中Map和ModelMap使用方式是一致的;@RequestMapping("/detail")public String detail(Integer id,//ModelMap modelMapMap modelMap){HashMap conditions=new Has...

weixin_39543835的博客 508

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java前台往后台传值_详解SpringMVC注解版前台向后台传值的两种方式

一、概述。在很多企业的开法中常常用到SpringMVC+Spring+Hibernate(mybatis)这样的架构,SpringMVC相当于Struts是页面到Contorller直接的交互的框架也是界面把信息传输到Contorller层的一种架构,通过这个架构可以让我们把页面和Contorller层解耦,使得开发人员的分工更加明确。二、代码演示。1、首先配置SpringMVC环境。1.1导入j...

weixin_29775447的博客 458

SpringMVC 后台向前台传值

我们今天来尝试 SpringMVC从后台向前台Jsp传值 使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndV...

陌心的博客 1173

springmvc的5种传值的方法

springmvc的5种传值的方法:1.request获取值:@RequestMapping("/request.action") public String request(HttpServletRequest request){ String value= (String) request.getAttribute("value"); String val=request.ge...

灰太狼 8744

前台传值到后台汉字值变了_SpringMVC后台获取前台参数和向前台传值的几种方式...

获取前台参数:我们以用户登录为例,用户登录涉及两个参数:账号:loginName密码:password这是前台登录视图: 相应的前台源码:帐号:密码:------------------------------------------------------介绍SpringMVC最常用的3种取值方法------------------------------------------------...

weixin_28811345的博客 283

springMVC(二)、springMVC向前台页面传值及前台页面显示值

本文以三种springMVC请求处理方法的书写来详细说明SpringMVC交互。 一、使用原生态的Servlet来做参数处理数据交互 先看代码: @RequestMapping("add") public void addStudent(HttpServletRequest req,HttpServletResponse resp){ StudentEntity student0=n

格乄子 7356

SpringMVC 接受请求参数、作用域传值

目录 原生servlet接收参数 Spring MVC最基础的参数获取 接收基本数据类型参数 方法参数列表和请求参数不一致的处理方式 接收对象引用数据类型 接收复选框这种多个同名的参数 接收obj.field格式的数据 接收RESTful方式的参数 占位符和方法参数同名时 占位符和方法参数不同名时 Spring MVC进行四大作用域传值 jsp九大内置对象 ...

JOKER0707的博客 559

SpringMVC:前台jsp页面和后台传值

前台jsp页面和后台传值的几种方式:                        不用SpringMVC自带的标签 前台---->后台,通过表单传递数据(): 1.jsp页面代码如下,  modelattribute 有没有都行 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding

DavidChen的博客 3764

java后台接受前台表单传值的方法

注解是 Spring MVC 中常用的参数绑定注解,它可以用来绑定 HTTP 请求中的参数到方法的参数上,从而获取表单数据。该注解中的参数指定了表单参数的名称,将该注解和方法参数一起使用,就可以获取表单中对应的参数值。在上述代码中,@PathVariable注解用于获取路径中的id参数,并将其绑定到方法中的userId参数上。需要注意的是,当使用@RequestBody注解时,需要保证请求体中的数据格式与Java对象的属性名及类型匹配。同时,也可以在Java对象中添加校验注解,实现对请求体数据的校验。

BASK2311的博客 4179
上一篇: 分页逻辑实现
下一篇: Thymeleaf使用小结
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值