如果此问题在其他地方重复出现,请先抱歉。我已经搜索了许多可能的相关参考资料,但无法获得解决我所遇到问题的解决方案。
我在jsp中有一个简单的表单,当用户单击“提交”时,它将生成一个供用户下载的excel。表单代码如下:-
<form id="myform" class="form-horizontal" action="MyServlet" method="POST" onsubmit="startDownload(this)">
<div class="form-group">
<label class="control-label col-sm-offset-2 col-sm-2" for="userText">User Text:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="userText" name="userText" placeholder="Enter Text">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-5">
<button type="submit" id="submitBtn" class="btn"><i class="fa fa-download"></i> Generate File </button>
</div>
</div>
</form>
在提交表单期间,jsp页面将显示一个加载器,当页面提示文件下载时,它将隐藏该加载器。我可以参考以下帖子来实现这一点:Reenable a form submit button on response of a file download。 onSubmit JavaScript函数如下:-
function startDownload(form) {
var token = new Date().getTime();
form.token.value = token;
showLoading(); //to show the loader
var pollDownload = setInterval(function() {
if (document.cookie.indexOf("download=" + token) > -1) {
document.cookie = "download=" + token + "; expires=" + new Date(0).toGMTString() + "; path=/";
stopLoading(); //to hide the loader
clearInterval(pollDownload);
}
}, 500);
}
问题是,当我在输入字段表单中输入一些值并单击Submit时,该值未传递到servlet。当我使用调试检查变量时,它给出“ null”。我用来获取Servlet中表单输入的代码:-
String userText = request.getParameter("userText");
但是如果我删除了onsubmit函数,则可以将值传递给servlet。
我可以知道为什么会这样吗,我在代码中哪里做错了吗?
非常感谢您提供的高级帮助和时间!
您是否在servlet方法中接受HttpServletRequest?您可以共享servlet代码吗?