我有以下 JQuery 代码,它将一些请求参数发送到我的 Spring MVC 控制器。对于某些参数,我应该得到多个值。
$('#tb-email').click(function(event) {
var base, data, formats, recipients, reportSource, reportSourceType;
if ($(this).parent('li').hasClass('disabled')) {
return false;
}
base = "<base href=\"" + window.location.protocol + "//" + window.location.host + window.DashboardGlobals.baseUrl + "\">";
data = $('html').clone().find('script').remove().end().find('nav').remove().end().find('#dashboardCanvas').removeClass('dashboardCanvas').end().find('head').prepend(base).end().html();
data = encodeURIComponent(Base64.encode('<html>' + data + '</html>'));
$.post(window.DashboardGlobals.sendMail, {
formats: ['png', 'pdf'],
recipients: ['abc@xyz.com', 'xyz@abc.com'],
reportSource: data, //Base64 data
reportSourceType: 'adhoc',
reportName: 'DataQualityApp'
});
event.preventDefault();
});
单击时tb-email
,请求将提交给保存在DashboardGlobals
变量中的某个控制器。
在服务器端,我编写了以下 Java 代码来获取参数格式和接收者的多个值。
public @ResponseBody String process(@RequestParam("formats") String[] formats, @RequestParam("recipients") String[] recipients, @RequestParam("reportSource") String reportSource, @RequestParam("reportSourceType") String reportSourceType, HttpServletRequest request) {
...Some Processing....
return null;
}
我检查了formats
和recipients
长度为1。
我什至尝试使用
String[] formats = request.getParameterValues("formats");
String[] recipients = request.getParameterValues("recipients");
我仍然在数组中获得单个值。长度还是一?
出了什么问题?