springMVC带文件的表单数据无法绑定到参数中

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在一个带enctype="multipart/form-data"属性的表单提交时发现,该表单中包含的其他input无法设置到对应方法参数中。

如下:

JSP:带enctype="multipart/form-data"属性的表单,包含一个username的input

<form action="${ctx}/console/article/testUpload"enctype="multipart/form-data" method="post"><input type="text" name="username"/><input type="file" name="uploadFile"/><input type="submit"/>
</form>

Controller:非常普通的两个方法,GET进入页面,POST输出表单中username的值(注意,没有处理uploadFile)。

@RequestMapping(value = "/testUpload", produces = "text/html;charset=utf-8", method = RequestMethod.GET)
public String testUpload() throws Exception {return "/uploadFile";
}
@RequestMapping(value = "/testUpload", produces = "text/html;charset=utf-8", method = RequestMethod.POST)
public String testUpload(String username) throws Exception {System.out.println(username);return "redirect:testUpload";
}

发现如下(以下各点相互独立互不影响):

1、填写username并选择文件后点击提交,username输出为null;

2、去掉表单的enctype属性,填写username并选择文件后点击提交,username输出正常;

3、向POST的方法添加MultipartFile uploadFile参数(修改结果如下),填写username并选择文件后点击提交,报错。

@RequestMapping(value = "/testUpload", produces = "text/html;charset=utf-8", method = RequestMethod.POST)
public String testUpload(String username, MultipartFile uploadFile) throws Exception {System.out.println(username);return "redirect:testUpload";
}

报错信息如下:

根据以上发现可知:

1、带enctype属性的表单,需要额外配置以解析其中的参数;

2、如果方法中的参数不处理文件,即没有MultipartFile参数,则不报错,也无法获取其他参数。

网上(见最后的链接)找到解决办法,得知需要配置multipartResolver来解析带enctype="multipart/form-data"属性的表单

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="utf-8"></property><property name="maxUploadSize" value="10485760000"></property><property name="maxInMemorySize" value="40960"></property>
</bean>

附:

https://segmentfault.com/q/1010000002786408

转载于:https://my.oschina.net/aslanjia/blog/861986

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

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

相关文章

关于Retinex图像增强算法的一些新学习。

最近再次看了一下IPOL网站&#xff0c;有一篇最近发表的文章&#xff0c;名字就是Multiscale Retinex&#xff0c;感觉自己对这个已经基本了解了&#xff0c;但还是进去看了看&#xff0c;也有一些收获&#xff0c;于是抽空把他们稍微整理了下&#xff0c;原始文章及其配套代码…

如何判断 .NET Core 应用程序是以管理员身份运行

有时候&#xff0c;我们需要知道当前程序是否以管理员身份运行&#xff0c;以便执行一些需要特殊权限的操作。在github(https://github.com/dotnet/runtime/issues/25118#issuecomment-367407469)上找到了一个解决方案&#xff1a;//需要引用nuget包Mono.Posix.NETStandard pub…

php如何避免时间重复,如何避免/停止php和html的重复插入?

这是我写的一个小班(未经测试)class FormID {private $lastFormID "";private $newFormID "";function __construct(){$this->lastFormID $_SESSION[__frmid__];$_SESSION[__frmid__] uniqid(sm);$this->newFormID $_SESSION[__frmid__];}publi…

Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候

1、Content和activity、service、Application关系 2、Application里面attachBaseContext和onCreate函数调用顺序 Application-> attachBaseContext ();ContentProvider:onCreate()Application:onCreate()人还是容易忘记&#xff0c;先记录下来。

批量创建域账号

创建5列的csv文档&#xff08;注意文件编码&#xff09; 执行如下脚本 for /f "tokens1,2,3,4,5 delims," %a in (c:\test.csv) do dsadd user "cn%c,oumk,ouicgroup,dcicdomain,dccom" -samid %d -upn %dicdomain.com -ln %a -fn %b -pwd %e -disabled no…

如何快速编写并运行Tiny模板语言?

2019独角兽企业重金招聘Python工程师标准>>> 说到模板开发&#xff0c;当然就离不开要调试&#xff0c;要运行。 由于一般情况下模板语言都是由Java程序驱动跑的&#xff0c;因此&#xff0c;每次都需要搞一个Java类来驱动它&#xff0c;才能运行出结果。这个对于悠…

Windows 11 上大招!正式支持安卓!

面向 Windows 11 正式版用户&#xff0c;微软现已发布累积更新 KB5010414&#xff0c;更新后版本号升级至 Build 22000.527。KB5010414 是一个可选更新&#xff0c;因此除非您主动点击“获取更新”按钮&#xff0c;否则它不会下载或安装。该更新将于 2022 年 3 月向所有 Window…

linux之使用md5sum命令比较两个文件是否一样

1、md5sum命令介绍 md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容&#xff0c;与文件名无关&#xff0c;也就是文件内容相同&#xff0c;其md5值相同2、比较文件 1&#xff09;、生产文件的md5md5sum file1md5sum file2 会有结果显示2&am…

php 友盟推送角标,桌面角标设置以及消息推送服务

更新记录0.01(2020-05-09)1、添加角标设置2、添加清除角标3、添加品牌获取4、添加通知栏推送5、添加点击通知栏进入APP平台兼容性AndroidiOS原生插件通用使用流程&#xff1a;购买插件&#xff0c;选择该插件绑定的项目。在HBuilderX里找到项目&#xff0c;在manifest的app原生…

博客流量分析

接连两篇Spark内核分析的文章都被推荐到CSDN首页&#xff0c;带来的流量还是很客观的&#xff0c;基本上一天最少500个独立IP的访问。这个访问量还是很客观的&#xff0c;比推荐到博客首页和侧边栏还是效果好处不少的。88%的流量来自首页。北京不愧是码农的聚集地啊&#xff0c…

hdu 4493 Tutor (水 精度)

题意&#xff1a; 思路&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; int fa[150]; int fin(int x) {return fa[x]x?x:fin(fa[x]); } void unionn(int x,int y) {int fxfin(x);i…

关于YoYo.Cms

YoYoCms 我是角落的白板笔&#xff0c;目前是一个专注于ABP框架的使用者和学习者。 在第一阶段我会将Zero中功能给实现出来&#xff0c;当然会对他进行一些改变&#xff0c;毕竟有些地方的实现不是那么适合国内的开发环境。 YoYoCms 会持续将一些通用的功能组件释放出来给大家使…

WPF 基础控件之CheckBox样式

WPF开发者QQ群&#xff1a;340500857由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.0.001—代码如下一、创建 Styles.Check…

Android之ndk-build -j4

1、提高编译速度 ndk-build -j4 就是指定4核编译 如果cpu是8核就指定-j8

oracle sql 输出,将数据从Oracle SQL Developer导出到Excel .xlsx

将数据从Oracle SQL Developer导出到Excel .xlsx我有一个小型项目&#xff0c;需要将Oracel SLQ Developer的数据导出到Excel(使用SLQ Developer中的命令而不是工具)&#xff0c;然后创build一个图表。 使用“假脱机”我可以导出到CSV精细(但无法在CSV中创build一个graphics)&a…

命名参考

CSS选择器命名及常用命名规范的命名也是Web标准中的重要一项&#xff0c;标准的命名可以使代码更加易读&#xff0c;而且利于搜索引擎搜索&#xff0c;比如定义了两个div&#xff0c;一个id命名为“div1”&#xff0c;另外一个命名为“News”&#xff0c;肯定第二个比较易读&am…

Theano3.2-练习之数据集及目标函数介绍

来自http://deeplearning.net/tutorial/gettingstarted.html#gettingstarted 一、下载 在后续的每个学习算法上&#xff0c;都需要下载对应的文档&#xff0c;如果想要一次全部下好&#xff0c;那么可以复制git上面的这个教程的资料&#xff1a; git clone git://github.com/li…

C#使用NPOI导出Excel文件

欢迎您成为我的读者&#xff0c;希望这篇文章能给你一些帮助。前言今天咱们一起来看看在C#中如何使用NPOI第三方控件进行数据的导出。关于NPOI插件网上资料很多&#xff0c;大家感兴趣的可以去看看。本文使用的版本是NPOI 2.5.1。大家可在包管理器NuGet或者下面网址进行下载。h…

Android之ActivityLifecycleCallbacks的得到当前的activity的状态

1、ActivityLifecycleCallbacks的介绍 Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理,注意是在Application里面,路径如下 android.app.Application.ActivityLifecycleCallbacks要求API 14+ (Android 4.0+) ActivityLifecyc…

oracle使用max提升效率,Oracle调优之利用max与leftjoin来进行不同表之间匹配

需求有两个不同的表&#xff0c;A表是基础数据&#xff0c;B表根据A表的某个不重复关键字加其他一些条件查询出一条或几条数据&#xff0c;取其中一条数据。并且利用此数据某个关键字再在B表中查询下一层级数据&#xff0c;最终将A表的对应一条数据&#xff0c;B表查询出的两条…