一、问题原因
JAVA后台获取不到form表单提交值的情况,可能的原因:
1、提交元素的name与获取的name不符--request.getParameter(name)
2、传递的值为空
3、form没有嵌套input
4、form加了enctype="multipart/form-data"属性
其中第4种可能的情况主要是是因为在使用multipart/form-data属性之后请求体发生了变化。不是key=value的形式出现了,所以说获取不到。
二、解决办法
(1)我们可以通过js代码来些修改,把我们的参数追加在url的后边。
<div><divclass="bjui-searchBar"><spanstyle="font-size: 14px; padding: 3px;font-weight: 300"> 文件名称: </span><inputtype="text"class="input-nm"value=" ${staticResourceFile.fileName!}"readonlysize="50"data-rule="required;length(1~128)"></div><divclass="bjui-searchBar"><spanstyle="font-size: 14px; padding: 3px;font-weight: 300"> 当前目录: </span><formaction="${ctxPath}/staticResource/upload"name="upload"enctype="multipart/form-data"method="post"><inputtype="text"name="currentPath"class="input-nm"value="${staticResourceFile.parentPath!}"size="50"data-rule="required;length(1~128)"><inputtype="file"name="file"><inputtype="submit"name="上传"></form><span>当前支持格式为:jpg,png,css,js,mp4(50M以内)</span></div></div><scriptsrc="/www/xgwy/js/jquery.min.js"type="text/javascript"charset="utf-8"></script><scripttype="text/javascript">functionformSubmit(){ varaction="${ctxPath}/staticResource/upload"; action+="?currentPath="+document.upload.currentPath.value; document.upload.action=action; document.upload.submit(); } </script>
(2)通过修改服务器端代码。前提是利用jar包。
代码后续再加上。
本文首发于CSDN,为博主原创文章,如果需要转载,请注明出处,谢谢!
完结!