我想通过window.open(url)
方法下载文件,但是参数太多,action无法接收它们。是否有一些解决方案可以在 jQuery 中或通过表单提交来解决这个问题?
var url = "${path}/MaterialStockedAnalysisExport.action?type=byCompany";
url += "&startMonth=" + startMonth + "&endMonth=" + endMonth + "&materialStr=" +
escape(encodeURIComponent(materialStr)) + "&companyStr=" +
escape(encodeURIComponent(companyStr));
alert(url);
window.open(url);
最佳答案
操作的参数可以通过两种方式传递,在 servlet 技术中是 http GET 或 POST 请求。但由于导航栏的某些服务器或浏览器限制,您无法在一个请求中传递所有这些内容。问题的解决方案是使表单隐藏
输入字段,然后提交表单。
<s:set var="myPath">${path}</s:set>
<s:url var="myUrl" namespace="%{#myPath}" action="MaterialStockedAnalysisExport" />
<s:form id="myForm" action="%{myUrl}" method="POST">
<s:hidden name="type"/>
<s:hidden name="startMonth"/>
<s:hidden name="endMonth"/>
<s:hidden name="materialStr"/>
<s:hidden name="companyStr"/>
<s:a id="myLink" href="#">Export</s:a>
<script type="text/javascript">
$(document).ready(function() {
$("#myLink").click(function(event) {
event.preventDefault();
$('input[name=type]').val('byCompany');
$('input[name=startMonth]').val(startMonth);
$('input[name=startMonth]').val(endMonth );
$('input[name=materialStr]').val(ematerialStr);
$('input[name=companyStr]').val(companyStr);
$("#myForm").submit();
});
});
</script>
</s:form>
关于java - 还有另一种方法可以在 jquery 或表单提交中下载文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506969/