SpringMVC学习总结二——数据绑定

讲解 SpringMVC 中数据绑定的实现方式 在 Spring MVC 中,数据绑定是一个重要的特性,它允许将请求参数自动绑定到控制器方法的参数上,以及将模型数据自动填充到视图中。总之,Spring MVC 中的数据绑定提供了一种方便、高效的方式来处理用户输入数据和模型数据的映射。数据绑定是将用户输入的数据(通常来自 HTTP 请求)与 Java 对象进行自动映射的过程。这样可以简化控制器方法中对请求参数的处理,以及在视图中展示模型数据的过程。JSON 数据的数据绑定。URL 参数的数据绑定。 阅读详情

四、数据绑定

     处理器适配器在执行handle之前,把http请求中的数据绑定到handle方法的形参上。

           

           

  1. HttpServletRequest
  2. HttpServletResponse
  3. HttpSession
  4. Model:将数据填充到request域中
  5. 简单数据类型:当请求中的参数名和处理器方法的形参名字一致时,会将请求中的参数数据与形参进行绑定

         支持的java基本类型有:int String double boolean等

           

         @RequestParam属性

          

      value:绑定传参的参数名

      required:是否为必须值

      defaultValue:默认值

    6.简单pojo类型的数据绑定(属性都是基本数据类型的)

      乱码过滤器(在web.xml中配置)

     7.包装(复杂)pojo类型

       8.集合类型(数组)

Spring MVC注解与数据绑定(含源码及结果图) 1、有如下一个订单信息页面order.jsp(置于/WEB-INF/jsp目录下),按以下步骤实现一个使用POJO类型完成表单数据传输的SpringMVC数据绑定项目。 (1) 创建一个Order类来封装上述订单信息,其中各个属性的名称和数据类型是:产品编号(ProductID,Integer),用户编号(UserID,Integer),交易日期(TransactionDate,Date),价格(Price,Double),数量(Quantity,Long),交易金额(TransactionAmount,Double),用户邮件(Email,String),备注(Comment,String)。 (2) 编写控制器类OrderController,在类中实现向order.jsp跳转的方法和接收order.jsp页面提交的订单信息的方法(该方法执行完后会将订单信息显示在result.jsp页上,见步骤(6))。 (3)创建日期转换类DateConverter,实现String类型到Date类型的转换。 (4)创建order.jsp页面。 (5)配置springmvc-config.xml文件。 (6)创建一个result.jsp结果页面(置于/WEB-INF/jsp目录下),用于显示接收到订单信息。 立即下载

相关推荐

Spring MVC数据绑定概述及原理详解

主要介绍了Spring MVC数据绑定概述及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

SpringMvc 学习总结

SpringMvc 学习总结

weixin_45161367的博客 1276

DDPG算法实战:用Python一步步实现深度强化学习中的连续动作控制

本文详细介绍了DDPG算法在深度强化学习中的连续动作控制应用,通过Python和PyTorch实现从零构建智能体。内容涵盖环境搭建、网络架构设计、经验回放、OU噪声实现及训练流程优化,帮助开发者掌握DDPG在机械臂控制等场景的核心技术。

weixin_30335575的博客 416

SpringMVC参数绑定学习总结【前后端数据参数传递】

SpringMVC作为Controller层(等价servlet和struts中的action)专门用来处理页面的一些请求,然后将数据再通过视图返回给用户的,因此可见前后端数据参数传递相对springmvc的重要性,这篇文章将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。 1. 绑定机制 表单提交的数据都是k=v格式的,SpringMVC的参数绑定过程是...

宜春 9384

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

电动汽车充电设备标准化设计方案:电气原理图

80kW一体式一机一枪充电机电气原理 主电路拓扑见图1,配置1个250A直流充电连接装置,提供4个充电模块安装位置,根据充电功率需求可选配2~4个20kW充电模块。内置直流电能表和计费控制单元,实现计量计费和充电控制功能。 图1 80kW一体式一机一枪充电机主电路拓扑 ...

santirenpc的博客 1万+

SpringMVC数据绑定总结

SpringMVC数据绑定总结SpringMVC数据绑定 Kay 2017.7.5整理 源码地址:https://github.com/LiuKay/springmvc1. 基本类型推荐使用包装类型,注意@RequestParam注解的使用,其属性可以设置参数别名、设置参数是否必须,以及默认值 @RequestMapping(value = "/baseType") @Respo

Kaybee - 练级之路 773

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9881

SpringMVC学习笔记(狂神说)

SpringMVC学习笔记(狂神说)1、什么是SpringMVC1.1 回顾Servlet 1、什么是SpringMVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合 MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。 1.1 回顾Servlet 1、新建一个Maven工程当做富工程,引入依赖。 <dependencie

weixin_44190665的博客 774

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6862

心电图机原理及电路超详细讲解

前置心电放大电路(虚线框:这是隔离电路的分界,在隔离电路分析中知道,完整隔离包括信号隔离(脉宽调制)、控制信号隔离(光电耦合)和电源隔离)后级放大电路。

fcxgfdjy的博客 2万+

springMVC请求参数绑定代码步骤详解与总结

请求参数绑定(一)简单类型作为参数 目标 springMVC如何封装请求参数。 分析 举例: http://localhost:8080/user/save.do?id=100&amp;amp;amp;name=jack servlet中如何获取请求参数: request.getParameter(“id”); springMVC中:public void save( int id, String nam...

lilei的博客 797

国产化办公新选择:在银河麒麟V10上部署ToDesk远程桌面

本文详细介绍了在国产操作系统银河麒麟V10上部署ToDesk远程桌面的完整指南。作为国产远程控制工具,ToDesk在连接速度、系统适配性和用户体验方面表现优异,特别适合国产化办公场景。文章包含X86和ARM架构的安装步骤、常见问题排查及性能优化技巧,帮助用户高效实现远程办公。

weixin_33742618的博客 234

【Spring篇】SpringMVC的常见数据绑定

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯SpringMVC的简单数据绑定🚦创建Signon类🚦创建SignonDao接口🚦创建SignonDaoImp类🚦创建SignonService接口🚦创建SignonServiceImp类🚦创建web.xml文件🍔默认类型数据绑定✨创建控制器类LoginController✨创建登录页面login1.jsp🍔简

m0_74202856的博客 5653

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SpringMVC数据绑定

这表明getProducts()方法获取到了客户端请求中的参数proIds的值,并将请求参数中多个同名的proIds参数值全部存储在了getProducts()方法的proIds形参中,实现了集合的数据绑定。从图中所示的打印信息可以看出,程序打印出了提交的商品,这表明getProducts()方法获取到了客户端请求中的参数proIds的值,并将请求参数中多个同名的proIds参数值全部存储在了getProducts()方法的proIds形参中,实现了数组的数据绑定。

z_y_j229970438的博客 1565

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringMVC | SpringMVC中的 “数据绑定”

目录: “数据绑定” 介绍 1.简单数据绑定 : 绑定 “默认数据” 类型 绑定 “简单数据类型” 类型 (绑定Java“基本数据类型”) 绑定 “POJO类型” 绑定 “包装 POJO” “自定义数据” 绑定 : Converter (自定义转换器) .....

m0_70720417的博客 1661

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

springMVC入门总结(二)数据绑定

 将之前入门学习的springMVC粗略总结一下,技术有限,如有错误,望指出。  SpringMVC常见的几种常见的数据绑定 一、数据绑定的方式  1 .  通过注解 @RequestParam 绑定url参数, 如绑定url参数上的age属性: [java] view plain copy public  String ba

LateMouse 536

SpringMVC常见组件之DataBinder数据绑定器分析

什么是数据绑定?简单一句话就是把请求中参数信息绑定到目标方法的参数上。数据绑定是参数解析过程中的一部分。如下图所示: 那么这里我们就要研究一下数据绑定相关的那些组件。 【1】绑定工厂WebDataBinderFactory 工厂嘛,使用了工厂方法设计模式,只有一个抽象方法用来让子类实现以创建一个WebDataBinder实例。 public interface WebDataBinderFactory { WebDataBinder createBinder(NativeWebRequest webRe

小小默:进无止境 3866

SpringMVC的数据绑定

文章目录一、为什么使用它二、如何使用1、默认数据类型①、导包②、在web.xml中配置③、创建springmvc配置文件④、创建controller类⑤、创建success.jsp页面⑥、启动tomcat服务器2、简单数据类型修改UserController类3、绑定pojo类型①、在pojo中创建User实体类②、修改Usercontroller类③、创建register.jsp页面④、启动Tomcat服务器4、包装pojo①、创建班级实体类和学生实体类②、创建StudentController③、stu

二十四桥明月夜的博客 1989

SpringMVC入门与数据绑定

从本节开始,我要学习在Spring生态体系中我们必须掌握的Web应用框架 Spring MVC。

weixin_50216991的博客 905

05【SpringMVC的数据绑定】

SpringMVC里面,所谓的数据绑定就是将请求带过来的表单数据绑定到执行方法的参数变量中,SpringMVC除了能够绑定前端提交过来的数据还可以绑定Servlet的一套API,例如我们刚刚一直在使用的HttpServletRequest和HttpServletResponse 表单:Demo01.jsp: 5.1.2 普通实体类 lombok依赖: 定义实体类型: Controller: 表单:Demo02.jsp: 5.2.3 数组和集合类型 1)数组 Controller:

緑水長流*z 629

数据绑定——springmvc入门介绍(二)

数据绑定概念及绑定过程 在springmvc入门介绍(一)中介绍了几种服务器端的数据如何传递给前端去展示。本节主要介绍如何将前端的数据传送到服务端,即view的数据如何传送到controller中对应的处理方法中。springmvc主要将要传送的数据通过与处理方法的形参进行绑定,完成数据传递的过程。绑定过程如下图所示: SpringMVC框架提供了一个数据绑定组件(DataBinder),前端请求将请求数据包裹在request中发送给DataBinder组件,通过RequestMaping映射的方法也将自

guoyp2126的博客 770
上一篇: SpringMVC学习总结一——认识SpringMVC及工作流程
下一篇: SpringMVC学习总结三——JSON交互与拦截器
Love_codes
博客等级 码龄8年 16粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值